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

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

全局组件

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形式存在:

最新文章

  1. 7、provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错
  2. 《HelloGitHub》之GitHub Bot
  3. Python数据类型之“集合(Sets)与映射(Mapping)”
  4. 如何在远程计算机上运行PowerShell
  5. linux下查看端口的占用情况
  6. 关于简明Vim练级攻略
  7. Apache HTTP Server mod_session_dbd 远程安全漏洞(CVE-2013-2249)
  8. searchbar的使用介绍
  9. AfxSocketInit()
  10. Cocos2D-X2.2.3学习笔记8(处理精灵单击、双击和三连击事件)
  11. 考察printf函数返回值
  12. 怎样使用C# MD5加密来增强密码的安全度
  13. 剑指Offer_编程题_14
  14. RabbitMQ安装(一)
  15. react 性能优化
  16. twitter oa
  17. Swift5 语言参考(五) 语句
  18. Bus memory attribute
  19. CentOS 6.4 配置DNS
  20. 工作中遇到的一道SQL应用题

热门文章

  1. javascript 保护变量不被随意修改------优雅的编程
  2. Foundation框架的一些实用方法:替换字符串,去空格,反转
  3. Java实验--继承与多态
  4. EXTJS中整合tinymce的富文本编辑器,添加上传图片功能
  5. Python 基础语法(和Java相比)
  6. JAVA_the user operation is waiting怎么办
  7. swift-for循环遍历,遍历字典,循环生成数组
  8. Windows和linux双系统——改动默认启动顺序
  9. FZU 2150 Fire Game (暴力BFS)
  10. AnkhSVN介绍