目录
Vue入门
1.6.自定义指令
1、示例代码
2、调试步骤
3、参数说明
4、生命周期
1.7.组件基础
1、组件注册
2、props属性传值
3、父子组件
4、完整示例代码
1.8.制作模板
1、选项模板
2、标签模板
vue中的自定义指令通过Vue.directive来实现,主要完成内置指令不能完成的一些事情
Vue入门之自定义指令
{{num}}
(1)chrome打开控制器查看
(2)控制台输入“app.num=’通过控制台设置的新name’”
(3)点击解绑按钮
自定义指令有五个生命周期(也叫钩子函数),分别是bind、inserted、update、componentUpdated、unbind,说明如下:
(1)全局注册
// script
Vue.component('button-counter', {
data: function () {
return {
count: 0
}
},
template: ''
});
new Vue({
el: '#app'
});
// html使用
(2)局部注册
// script
new Vue({
el: '#app',
components:{
"button-inner":{
data: function() {
return {
inner: 0
}
},
template: ''
}
}
});
// html使用
(1)属性取值
// script
new Vue({
el: '#app',
components:{
"button-props":{
template:`参数1: {{ here }}:---参数2: {{fromHere}}`,
props:['here', 'fromHere']
}
}
});
// html使用
PS:如果属性带“-”,props中需要驼峰取值
(2)在构造器向组件传值(v-bind)
// script
new Vue({
el: '#app',
data: {
message: 'hello'
},
components:{
"button-props":{
template:`参数1: {{ here }}:---参数2: {{fromHere}}`,
props:['here', 'fromHere']
}
}
});
// html使用
// script
// 子组件
var city = {
template:`Sichuan of China`
}
// 父组件
var parent = {
template:
`
Panda from China!
`,
components:{
"city": city
}
}
// 实例化
new Vue({
el: '#app',
// 定义局部组件
components:{
// 组件注册
"parent": parent
}
});
// html使用
Vue入门之组件
vue中的模板使用template来实现
我是template标签模板
Vue入门之组件
我是template标签模板
插槽,也就是slot,是组件的一块HTML模板(占位符),一个slot最核心的两个问题是显不显示和怎样显示
单个插槽,别名默认插槽、匿名插槽,不用设置name属性
12345
插槽加了name属性,就变成了具名插槽。具名插槽可以在一个组件中出现N次,出现在不同的位置
12345
56789
vue2.5版本中slot-scope取代了scope,来实现作用域插槽,主要用在组件调用中,具体在template标签上面使用slot-scope来获取插槽slot上面的属性值,获取值的为一个对象,slot-scope=”它可以取任意字符串”,在element-ui的组件中经常看到。
索引:{{JSON.stringify(scope)}}
索引:{{scope.$index}}
姓名:{{scope.row.name}}
年龄: {{scope.row.age}}
性别: {{scope.row.sex}}
Vue入门之slot
12345
12345
56789
索引:{{JSON.stringify(scope)}}
索引:{{scope.$index}}
姓名:{{scope.row.name}}
年龄: {{scope.row.age}}
性别: {{scope.row.sex}}