组件的使用
<!DOCTYPE html>
<html>
<head>
<title>组件</title>
<script src="Vue.min.js"></script>
<script>
window.onload = () => {
Vue.component('Prise', {
// 模板以及函数
data: function() {
return {
like: 100,
}
},
methods: {
clickLike: function() {
this.like++;
}
},
template: `
<div>
<p>{{ like }}</p>
<button v-on:click="clickLike">clickLike</button>
</div>
`
})
new Vue({
el: '#main',
data: {
message: 'Welcome XKD!',
}
})
}
</script>
</head>
<body>
<diV id="main">
<p>{{ message }}</p>
<Prise></Prise>
</diV>
</body>
</html>
组件的数据传递
...
Vue.component('Prise', {
// 定义一个props,它是一个数组
props: ['propsdata', 'dislike'],
data: function() {
return {
like: this.propsdata,
}
},
...
template: `
<div>
<p>{{ like }}</p>
<p>{{ dislike }}</p>
<button v-on:click="clickLike">clickLike</button>
</div>
`
})
...
data: {
message: 'Welcome XKD!',
preLike: 500,
dislike: 10,
}
...
<Prise v-bind:propsdata="preLike" v-bind:dislike="dislike"></Prise>
组件的事件传递
$emit(父组件方法, arguments)
...
template:`
<button v-on:click="$emit('propreport',like, 1)">report</button>
`
methods: {
getReport: function(e, number) {
alert(number);
}
}
...
<Prise v-on:propreport="getReport" v-bind:propsdata="preLike" v-bind:dislike="dislike"></Prise>
组件传递children
插槽
<slot></slot>
动态组件
<component v-bind:is="currentTabComponent"></component>
currentTabComponent: 当前显示的组件名称
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。