vue 组件 全局注册和局部注册
2024-09-01 10:21:53
全局注册,注册的组件需要在初始化根实例之前注册了组件;
局部注册,通过使用组件实例选项注册,可以使组件仅在另一个组件或者实例的作用域中可用:
全局组件
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形式存在:
最新文章
- 7、provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错
- 《HelloGitHub》之GitHub Bot
- Python数据类型之“集合(Sets)与映射(Mapping)”
- 如何在远程计算机上运行PowerShell
- linux下查看端口的占用情况
- 关于简明Vim练级攻略
- Apache HTTP Server mod_session_dbd 远程安全漏洞(CVE-2013-2249)
- searchbar的使用介绍
- AfxSocketInit()
- Cocos2D-X2.2.3学习笔记8(处理精灵单击、双击和三连击事件)
- 考察printf函数返回值
- 怎样使用C# MD5加密来增强密码的安全度
- 剑指Offer_编程题_14
- RabbitMQ安装(一)
- react 性能优化
- twitter oa
- Swift5 语言参考(五) 语句
- Bus memory attribute
- CentOS 6.4 配置DNS
- 工作中遇到的一道SQL应用题