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 相关文章推荐
关于Mozilla浏览器不支持innerText的解决办法
Jan 01 Javascript
用js小类库获取浏览器的高度和宽度信息
Jan 15 Javascript
jquery插件制作教程 txtHover
Aug 17 Javascript
javascript通过navigator.userAgent识别各种浏览器
Oct 25 Javascript
JavaScript中的call方法和apply方法使用对比
Aug 12 Javascript
分享jQuery插件的学习笔记
Jan 14 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
Jun 21 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
Jun 01 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
Sep 18 Javascript
vue+element加入签名效果(移动端可用)
Jun 17 Javascript
javascript跳转与返回和刷新页面的实例代码
Nov 20 Javascript
Vue列表循环从指定下标开始的多种解决方案
Apr 08 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实现无限级分类实现代码(递归方法)
2011/01/01 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
EsLint入门学习教程
2017/02/17 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
Electron 如何调用本地模块的方法
2019/02/01 Javascript
javascript实现画板功能
2020/04/12 Javascript
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
在Python的Django框架中包装视图函数
2015/07/20 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
Python常用库推荐
2016/12/04 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
关于PyTorch 自动求导机制详解
2019/08/18 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
元旦晚会策划方案
2014/02/18 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
Python使用Kubernetes API访问集群
2021/05/30 Python
详解MySQL中的pid与socket
2021/06/15 MySQL