父组件模板的内容在父组件作用域内编译;
子组件模板的内容在子组件作用域内编译;
{{ message }}
message应该绑定到父组件的数据;
下面这个错误是将父组件的一个指令绑定到子组件的属性方法:
如果要绑定作用域内的指令到一个组件的根节点,你应当在自己的模板上做:
Vue.component('child-component',{
// 这才是正确的作用域内
template:'child'
data:function(){
return{
childProperty:true
}
})
子组件至少要有一个 ‘slot’插口,不然父组件的内容将会被丢弃(被slot标签的内容替换)。如果子组件模板只有一个没有属性的slot时,父组件整个内容片段将插入到‘slot’所在DOM位置。并替换掉slot标签本身。
最初在‘slot’标签中的任何内容都被视为备用内容。备用内容在子组件的作用域内编译,并且只有在宿主元素为空,且没有要插入内容是才显示备用内容。
我是父组件的标题
初始内容
初始内容
Vue.component('my-component',{
template:'
我是子组件标题
只有在没有要分发的内容时才显示
',
})
new Vue({
el:'#app'
})
我是父组件的标题
slot元素可以用一个特殊的属性name来配置如何分发内容。多个slot可以有不同名字,具名slot将匹配内容片段中对应slot特性元素
也可以有一个匿名slot,默认是slot,作为找不到匹配的内容片段的备用插槽。如果没有默认的slot,这些找不到匹配的内容片段将会被抛弃。
这是标题
第一个段落
第二个段落
联系信息
Vue.component('my-component',{
template:'
',
})
new Vue({
el:'#app'
})
作用域插槽
作用域是一种特殊类型的插槽,使用一个可重用模板替换已渲染元素。在子组件中,只需将数据传递到插槽,就像你将props传递给组件一样
也称作是带数据的插槽
hello form parent
{{ prosp.text }}
Vue.commponent('my-component',{
template:'
',
props:['text']
})
new Vue({
el:'#app'
})
在父级中,具有特殊属性的scope的元素必须存在,表示它是作用域插槽的模板。scope的值对应一个临时变量名,此变量接收从子组件中传递的props对象。
我是父组件的标题
{{ props.text }}
Vue.component('my-component',{
template:'
',
props:[ 'text','items']
});
new Vue({
el:'#app',
data:{
items:[
{text:'item1'},
{text:'item2'},
{text:'item3'}
]
}
})
****** 这编辑器真是太垃圾了 ******
父组件
{{ aaa.text }}
{{ aaa.text2 }}
子组件