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 相关文章推荐
客户端 使用XML DOM加载json数据的方法
Sep 28 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
Dec 30 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
js获取html参数及向swf传递参数应用介绍
Feb 18 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
Jul 04 Javascript
js快速排序的实现代码
Dec 08 Javascript
限制复选框最多选择项的实现代码
May 30 Javascript
用node和express连接mysql实现登录注册的实现代码
Jul 05 Javascript
JavaScript实现的联动菜单特效示例
Jul 08 Javascript
微信小程序按钮点击动画效果的实现
Sep 04 Javascript
React组件设计模式之组合组件应用实例分析
Apr 29 Javascript
vue监听键盘事件的相关总结
Jan 29 Vue.js
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
用php和MySql来与ODBC数据连接
2006/10/09 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
2012/04/14 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
js中关于一个分号的崩溃示例
2013/11/11 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
详细介绍Python函数中的默认参数
2015/03/30 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
精彩的大学生自我评价
2013/11/17 职场文书
《走一步再走一步》教学反思
2014/02/15 职场文书
法制宣传月活动方案
2014/05/11 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技
MySQL事务操作的四大特性以及并发事务问题
2022/04/12 MySQL