一。组件
把页面中通用的部分做成组件,减低开发成本
先定义组=====> 再注册组件 ===========> 再组件通信
①定义组件
语法: 注意组件中data是一个函数
// 定义组件
const 组件对象 = {
// 渲染模板
template : ``,
// 组件数据 (必须是一个函数)
data : function () {
return {
}
},
// 组件属性
props : {
},
// 计算属性
computed : {
},
// 方法
methods : {
},
// 监控属性
watch : {
},
// 生命周期钩子
created (){
}
};
使用:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vuejs定义组件</title>
<script src="node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
</div>
<script type="text/javascript">
// 定义组件
const MyButton = {
// 渲染模板
template : `<button @click="calc()">你点击了: {{num}}次!</button>`,
// 组件数据 (必须是一个函数)
data : function () {
return {
num: 1
}
},
// 方法
methods : {
calc : function () {
this.num++;
}
}
};
// 创建Vue实例
var vue = new Vue({
el : '#app', // 渲染的html元素
data : { // 数据对象
}
});
</script>
</body>
</html>
扩展:对于组件名,有两种写法
一种是 :zu-jian
一种是 : ZuJian
但是,无论哪种,再使用组件的时候都是用<zu-jian />
②注册组件
分为:全局组件和局部组件
全局组件: Vue.component('组件名称', 组件对象);
局部组件: 只能在当前的Vue实例中可以使用。
components : {
"my-button" : MyButton
}
③组件通信
第一种:父组件向子组件通信:----------------通过 Prop 向子组件传递数据------通过传递属性来进行通信 (在子组件中定义父组件需要传递的属性)