vue 组件 全局注册和局部注册的实现


Posted in Javascript onFebruary 28, 2018

全局注册,注册的组件需要在初始化根实例之前注册了组件;

局部注册,通过使用组件实例选项注册,可以使组件仅在另一个组件或者实例的作用域中可用:

全局组件

js

Vue.component('tab-title',{
   props:['title'],
   template:'<li v-on:click="$emit(\'change\')">{{title}}</li>'
 })
 Vue.component('tab-content',{
   props:['content'],
   template:'<div>{{content}}</div>'
 })

局部组件demo:

html

<div id="app">
  <ul class="navTab">
   <li v-for="(navTab,index) in navTabs" is="tab-title" v-bind:info="navTab.text" v-bind:class="{active:navTab.isActive}" v-on:addactive="switchActive(index)"></li>
  </ul>
  <div class="tabContent">
   <div v-for="navTab in navTabs" is="tab-content" v-bind:content="navTab.tabContent" 
   v-bind:class="['tab-panel',{active:navTab.isActive}]" v-if="navTab.isActive"></div>
  </div>
  </div>

js

var app=new Vue({
      el: '#app',
     components: {
       'tab-title': {
        props:['info'],//接受父元素传递的参数
        template:'<li v-on:click="$emit(\'addactive\')">{{info}}</li>'//点击时传递通过$emit子元素传递给父元素调用 addactive方法(不能使用驼峰写法)
        },
       'tab-content':{
         props:["content"],
        template:'<div>{{content}}</div>'
       }
     },
     methods:{
       switchActive:function(index){
        for(var i=0;i<this.navTabs.length;i++){
         this.navTabs[i].isActive=false;
        }
        this.navTabs[index].isActive=true;
        
       }
     },
     data:{
      navTabs:[
       {
        text:"tab1",
        isActive:true,
        tabContent:'this is tab1 content'
       },
       {
        text:"tab2",
        isActive:false,
        tabContent:'this is tab2 content'
       },
       {
        text:"tab3",
        isActive:false,
        tabContent:'this is tab3 content'
       }
      ]
     }
    });

组件实例的作用域是孤立的。这意味着不能再子组件的模板内直接引用父组件的数据。要让子组件可以使用父组件的数据,我们需要通过子组件的props选项。

子组件要显式地用 props 选项声明它期待获得的数据

在模板中,要动态地绑定父组件的数据到字模板的props,与绑定到任何普通的HTMO特性相类似。就是使用 v-bind。每当父组件的数据变化时,该变化也会传递给子组件:

所有的vuejs组件都是被扩展的vue实例

每一个Vue实例都会代理这个实例的data属性对象里的所有的属性

所有的Vue实例本身保罗的属性和方法,都以$开头来区别,对应Vue.set

例如:

vm.$data

vm.$methods

vm.$watch

这个有利于和data属性对象的数据来区分

多有的指令都以v-xxx形式存在:

以上这篇vue 组件 全局注册和局部注册的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
刷新时清空文本框内容的js代码
Apr 23 Javascript
for 循环性能比较 提高for循环的效率
Mar 19 Javascript
JavaScript的parseInt 进制问题
May 07 Javascript
如何让div span等元素能响应键盘事件操作指南
Nov 13 Javascript
Javascript跨域请求的4种解决方式
Mar 17 Javascript
js+div实现图片滚动效果代码
Feb 10 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
Mar 26 Javascript
Java中Timer的用法详解
Oct 21 Javascript
angular中实现控制器之间传递参数的方式
Apr 24 Javascript
ES6中Array.copyWithin()函数的用法实例详解
Sep 16 Javascript
浅谈在node.js进入文件目录的问题
May 13 Javascript
详解vue页面首次加载缓慢原因及解决方案
Nov 06 Javascript
vue 自定义全局方法,在组件里面的使用介绍
Feb 28 #Javascript
Vue2.0子同级组件之间数据交互方法
Feb 28 #Javascript
bootstrap table支持高度百分比的实例代码
Feb 28 #Javascript
vue 2.x 中axios 封装的get 和post方法
Feb 28 #Javascript
浅析node应用的timing-attack安全漏洞
Feb 28 #Javascript
vue组件传递对象中实现单向绑定的示例
Feb 28 #Javascript
在Vue组件中使用 TypeScript的方法
Feb 28 #Javascript
You might like
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
一个基于PDO的数据库操作类
2011/03/24 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
php制作简单模版引擎
2016/04/07 PHP
PHP实现小偷程序实例
2016/10/31 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
Tips 带三角可关闭的文字提示
2010/10/06 Javascript
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
2015/12/08 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
Python进阶之自定义对象实现切片功能
2019/01/07 Python
基于python实现地址和经纬度转换
2020/05/19 Python
Python-openCV开运算实例
2020/07/05 Python
python 装饰器的实际作用有哪些
2020/09/07 Python
护士实习自我鉴定
2013/10/22 职场文书
中医专业应届生求职信
2013/11/17 职场文书
应用数学自荐书范文
2013/11/24 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
优秀学生评语大全
2014/04/25 职场文书
有关爱国演讲稿
2014/05/07 职场文书
最美家庭活动方案
2014/08/31 职场文书
支行行长竞聘报告
2014/11/06 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android