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 相关文章推荐
Tinymce+jQuery.Validation使用产生的BUG
Mar 29 Javascript
Javascript实现计算个人所得税
May 10 Javascript
JavaScript Length 属性的总结
Nov 02 Javascript
js实现3D图片展示效果
Mar 09 Javascript
JavaScript制作简单的框选图表
May 15 Javascript
详解vue组件通信的三种方式
Jun 30 Javascript
Express使用html模板的详细代码
Sep 18 Javascript
VUE长按事件需求详解
Oct 18 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
Apr 27 Javascript
bootstrap与pagehelper实现分页效果
Dec 29 Javascript
JS继承最简单的理解方式
Mar 31 Javascript
在HTML5 localStorage中存储对象的示例代码
Apr 21 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使用SOAP调用.net的WebService数据
2013/11/12 PHP
PHP数组相关函数汇总
2015/03/24 PHP
通过Email发送PHP错误的方法
2015/07/20 PHP
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
vue实现文件上传功能
2018/08/13 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
vue-router传参用法详解
2019/01/19 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
2020/07/21 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
python使用递归解决全排列数字示例
2014/02/11 Python
Python导入txt数据到mysql的方法
2015/04/08 Python
python实现维吉尼亚算法
2019/03/20 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
django框架中间件原理与用法详解
2019/12/10 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
Canvas获取视频第一帧缩略图的实现
2020/11/11 HTML / CSS
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
本科生的职业生涯规划范文
2014/01/09 职场文书
学校联谊活动方案
2014/02/15 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
员工试用期自我评价
2014/09/18 职场文书
2015年春节标语口号
2014/12/09 职场文书
期末个人总结范文
2015/02/13 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
小学生大队委竞选稿
2015/11/20 职场文书