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中null与undefined分析
Jul 25 Javascript
jquery form表单提交插件asp.net后台中文解码
Jun 12 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
Apr 16 Javascript
使用js修改客户端注册表的方法
Aug 09 Javascript
JS批量修改PS中图层名称的方法
Jan 26 Javascript
浅谈Node.js中的定时器
Jun 18 Javascript
javascript 常用验证函数总结
Jun 28 Javascript
深入理解bootstrap框架之入门准备
Oct 09 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
Dec 13 Javascript
简单的渐变轮播插件
Jan 12 Javascript
在vue项目中正确使用iconfont的方法
Sep 28 Javascript
JavaScript Dom 绑定事件操作实例详解
Oct 02 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 md5下16位和32位的实现代码
2008/04/09 PHP
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
Javascript 解疑
2009/11/11 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
Sanic框架应用部署方法详解
2018/07/18 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
centos7之Python3.74安装教程
2019/08/15 Python
给我一面国旗 python帮你实现
2019/09/30 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
鲜果饮品店创业计划书
2014/01/21 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
车间主任岗位职责
2015/02/03 职场文书
“5.12”护士节主持词
2015/07/04 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs