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 相关文章推荐
JQuery 入门实例1
Jun 25 Javascript
jquery中实现简单的tabs插件功能的代码
Mar 02 Javascript
使用 js+正则表达式为关键词添加链接
Nov 11 Javascript
Lua表达式和控制结构学习笔记
Dec 15 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
Jun 24 Javascript
理解javascript中的严格模式
Feb 01 Javascript
vue指令以及dom操作详解
Mar 04 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
Jun 20 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
Nov 14 Javascript
微信小程序实现的一键连接wifi功能示例
Apr 24 Javascript
浅谈Vue组件单元测试究竟测试什么
Feb 05 Javascript
解决vue-photo-preview 异步图片放大失效的问题
Jul 29 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 5.0 Pear安装方法
2006/12/06 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
2017/05/24 jQuery
基于Vue实例对象的数据选项
2017/08/09 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
Python性能优化的20条建议
2014/10/25 Python
python通过函数属性实现全局变量的方法
2015/05/16 Python
python类中super()和__init__()的区别
2016/10/18 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
python实现定时提取实时日志程序
2018/06/22 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
Python OpenCV实现视频分帧
2019/06/01 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
Python文件操作方法详解
2020/02/09 Python
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
开放系统互连参考模型
2016/06/29 面试题
优秀员工自荐书
2013/12/19 职场文书
合作经营协议书
2014/04/17 职场文书
社区班子对照检查材料
2014/08/27 职场文书
小学生通知书评语
2014/12/31 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
python元组打包和解包过程详解
2021/08/02 Python
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python