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入门·动态的时钟,显示完整的一些方法,新年倒计时
Oct 01 Javascript
js判断一个元素是否为另一个元素的子元素的代码
Mar 21 Javascript
location.href用法总结(最主要的)
Dec 27 Javascript
js判断ie版本号的简单实现代码
Mar 05 Javascript
Bootstrap 源代码分析(未完待续)
Aug 17 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
正则表达式,替换所有HTML标签的简单实例
Nov 28 Javascript
jQuery简单获取DIV和A标签元素位置的方法
Feb 07 Javascript
详解vue-router基本使用
Apr 18 Javascript
Vue中使用方法、计算属性或观察者的方法实例详解
Oct 31 Javascript
vue滚动固定顶部及修改样式的实例代码
May 30 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
Jun 04 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
简单采集了yahoo的一些数据
2007/02/14 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
div层的移动及性能优化
2010/11/16 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
JS实现分页导航效果
2020/02/19 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python获取本地计算机名字的方法
2015/04/29 Python
深入了解Python数据类型之列表
2016/06/24 Python
Python中防止sql注入的方法详解
2017/02/25 Python
Python优先队列实现方法示例
2017/09/21 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
django框架模板语言使用方法详解
2019/07/18 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
Pytorch实验常用代码段汇总
2020/11/19 Python
致1500米运动员广播稿
2014/02/07 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
大学生党员个人总结
2015/02/13 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
JavaScript获取URL参数的方法分享
2022/04/07 Javascript