时间:2021-05-26
全局注册,注册的组件需要在初始化根实例之前注册了组件;
局部注册,通过使用组件实例选项注册,可以使组件仅在另一个组件或者实例的作用域中可用:
全局组件
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 组件 全局注册和局部注册的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这篇文章主要介绍了VUE注册全局组件和局部组件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下全局组件
Vue中的组件和指令分为局部组件、局部指令和全局组件、全局指令。对于注册有一定数量的全局指令和全局组件时,官方文档中的方法就显得有些不够清爽了。全局组件在Vue
官网上关于组件继承分为两大类,全局组件和局部组件。无论哪种方式,最核心的是创建组件,然后根据场景不同注册组件。有一点要牢记,“Vue.js组件其实都是被扩展的V
自定义指令自定义指令的注册方法和组件很像,也分全局注册和局部注册,比如注册一个v-focus指令用于在、元素初始化时自动获得焦点,共有两种写法://全局注册Vu
1、全局注册(这种方式注册组件必须在vue实例化之前声明)Vue.component('tag-name',{})2、局部注册varChild={templat