vue组件学习教程


Posted in Javascript onSeptember 09, 2017

在学习vue时,组件学习比较吃力,尤其是组件间的通信,所以总结一下,官方文档的组件部分。

注册组件

全局组件

语法如下,组件模板需要使用一个根标签包裹起来。data必须是一个方法

Vue.component('component-name',{
  template:'<div><h1>标题</h1><span>作者信息</span></div>',
  data(){
    return{
      message:'组件的属性'
    }
  },
  methods:{

  }
})

局部组件

var com = {
  template:'<div><h1>标题</h1><span>作者信息</span></div>',
  data(){
    return{
      message:'组件的属性'
    }
  },
  methods:{

  }
}

new Vue({
  components:{
    'compontent-name':com
  }
})

组件通信

prop将父组件数据传给子组件

<div id='app'>
   <child :msg=message></child>
 </div>
<script>
  Vue.component('child', {
    props: ['msg'],
    template: '<p>{{msg}}</p>'
  })

  new Vue({
    el: '#app',
    data: {
      message: '父组件数据'
    }
  })
</script>

利用子组件的props选项,父组件可以向子组件传递数据,但是子组件不能求改父组件的数据。

非父子组件通信

需要使用一个空的Vue实例来管理

<div id='app'>
  <com-a></com-a>
  <com-b></com-b>
</div>
var bus = new Vue();

var coma = {
  template: '<p @click="send">{{adata}}</p>',
  data(){
    return {
      adata: 'a的数据'
    }
  },
  methods:{
    send(){
      // 触发这一事件
      bus.$emit('data-to-b', this.adata);
    }
  }
  
};

var comb= {
  template: '<p>{{bdata}}</p>',
  data(){
    return {
      bdata: 'b的数据'
    }
  },
  mounted(){
    // 监听事件,获取a组件的数据,进行相关操作
    bus.$on('data-to-b', function (msg) {
      this.bdata = msg;
    }.bind(this));
  }
};

new Vue({
  el:'#app',
  components: {
    'com-a': coma,
    'com-b': comb
  }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
5种处理js跨域问题方法汇总
Dec 04 Javascript
js面向对象的写法
Feb 19 Javascript
第七章之菜单按钮图标组件
Apr 25 Javascript
微信小程序 开发指南详解
Sep 27 Javascript
值得分享的Bootstrap Table使用教程
Nov 23 Javascript
vue实现仿淘宝结账页面实例代码
Nov 08 Javascript
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
vue同步父子组件和异步父子组件的生命周期顺序问题
Oct 07 Javascript
ES6 对象的新功能与解构赋值介绍
Feb 05 Javascript
小程序实现多列选择器
Feb 15 Javascript
ES6 Promise对象的含义和基本用法分析
Jun 14 Javascript
javascript实现点亮灯泡特效示例
Oct 15 Javascript
weex里Vuex state使用storage持久化详解
Sep 09 #Javascript
Vue2几种常见开局方式详解
Sep 09 #Javascript
使用JS动态显示文本
Sep 09 #Javascript
深入理解ES7的async/await的用法
Sep 09 #Javascript
jQuery事件对象的属性和方法详解
Sep 09 #jQuery
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 #Javascript
React-Native中禁用Navigator手势返回的示例代码
Sep 09 #Javascript
You might like
php 调用远程url的六种方法小结
2009/11/02 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
js实现文字滚动效果
2016/03/03 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
vue实现通讯录功能
2018/07/14 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
利用Python实现图书超期提醒
2016/08/02 Python
Python常见异常分类与处理方法
2017/06/04 Python
python一键去抖音视频水印工具
2018/09/14 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
python如何导入依赖包
2020/07/13 Python
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
聘用意向书范本
2014/04/01 职场文书
出纳担保书范文
2014/04/02 职场文书
学校安全生产承诺书
2014/05/23 职场文书
大学生在校表现评语
2014/12/31 职场文书
2015年体育教学工作总结
2015/05/20 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python
vscode内网访问服务器的方法
2022/06/28 Servers