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 相关文章推荐
简单js代码实现selece二级联动(推荐)
Feb 18 Javascript
javascript的BOM汇总
Jul 16 Javascript
jQuery实现简洁的导航菜单效果
Nov 23 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
Jun 08 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
Sep 02 Javascript
微信小程序 UI与容器组件总结
Feb 21 Javascript
zTree实现节点修改的实时刷新功能
Mar 20 Javascript
bootstrap fileinput插件实现预览上传照片功能
Jan 23 Javascript
vue-router配合ElementUI实现导航的实例
Feb 11 Javascript
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
Vue项目部署的实现(阿里云+Nginx代理+PM2)
Mar 26 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
Feb 10 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 极验验证码实例讲解
2016/09/29 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
php pdo操作数据库示例
2017/03/10 PHP
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
Js组件的一些写法
2010/09/10 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
Jquery中attr与prop的区别详解
2017/05/27 jQuery
详解webpack自动生成html页面
2017/06/29 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
js实现验证码功能
2020/07/24 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
硕士研究生自我鉴定
2013/11/08 职场文书
家长给老师的道歉信
2014/01/13 职场文书
股东协议书范本
2014/04/14 职场文书
机电专业求职信
2014/06/14 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年团工作总结
2014/11/27 职场文书
大学生毕业评语
2014/12/31 职场文书
建党伟业电影观后感
2015/06/01 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
用几道面试题来看JavaScript执行机制
2021/04/30 Javascript