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 相关文章推荐
JavaScript 读取元素的CSS信息的代码
Feb 07 Javascript
javascript实现面向对象类的功能书写技巧
Mar 07 Javascript
从阶乘函数对比Javascript和C#的异同
May 31 Javascript
jQuery简单实现banner图片切换
Jan 02 Javascript
用javascript对一个json数组深度赋值示例
Jul 27 Javascript
JQuery radio(单选按钮)操作方法汇总
Apr 15 Javascript
H5实现仿flash效果的实现代码
Sep 29 Javascript
浅析Vue 和微信小程序的区别、比较
Aug 03 Javascript
小程序server请求微信服务器超时的解决方法
May 21 Javascript
vue.js循环radio的实例
Nov 07 Javascript
Echarts实现多条折线可拖拽效果
Dec 19 Javascript
Vue实现图片轮播组件思路及实例解析
May 11 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函数的方法
2013/11/13 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
Bootstrap学习笔记之css样式设计(1)
2016/06/07 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
Django Rest framework之权限的实现示例
2018/12/17 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
局部内部类是否可以访问非final变量?
2013/04/20 面试题
幼儿园元旦家长感言
2014/02/27 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
考试作弊检讨
2015/01/27 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
应急管理工作总结2015
2015/05/04 职场文书
创业不要错过,这4种餐饮新模式
2019/07/18 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python
Pytest中conftest.py的用法
2021/06/27 Python