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和Asp、Php等后端程序间传值编码统一
Apr 17 Javascript
javscript对象原型的一些看法
Sep 19 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
Mar 01 Javascript
js中arguments,caller,callee,apply的用法小结
Jan 28 Javascript
使用typeof方法判断undefined类型
Sep 09 Javascript
JavaScript中用let语句声明作用域的用法讲解
May 20 Javascript
js防阻塞加载的实现方法
Sep 09 Javascript
AngularJS API之copy深拷贝详解及实例
Sep 14 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
Jun 15 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
详解JavaScript修改注册表的方法
Jan 05 Javascript
Node.js API详解之 V8模块用法实例分析
Jun 05 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 curl 并发最佳实践代码分享
2012/09/05 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
利用php递归实现无限分类 格式化数组的详解
2013/06/08 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
jQuery的attr与prop使用介绍
2013/10/10 Javascript
使用jquery自定义鼠标样式满足个性需求
2013/11/05 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
JS二分查找算法详解
2017/11/01 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
py2exe 编译ico图标的代码
2013/03/08 Python
python+mysql实现简单的web程序
2014/09/11 Python
Python标准库内置函数complex介绍
2014/11/25 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
python解析yaml文件过程详解
2019/08/30 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
利用python生成照片墙的示例代码
2020/04/09 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
货车司机岗位职责
2014/03/18 职场文书
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫