Vue两大核心:
- 数据驱动界面改变
- 组件化
1.什么是组件?什么是组件化?
- 在前端开发中组件就是把一个很大的界面拆分为多个小的界面,每一个小的界面就是一个组件
- 将大界面拆分成小界面就是组件化
2.组件化的好处?
- 可以简化Vue实力代码
- 可以调高复用性
3.Vue中如何创建组件?
- 创建组件构造器
- 注册已经创建好的组件
- 使用注册好的组件
自定义全局组件:
自定义局部组件:
自定义组件中的data和methods:
注意:在自定义组件中不能像在vue实列中一样直接使用data,而是必须通过返回函数的方式来使用data
动态组件:
<body>
<!-- MVVM中的View -->
<div id="app">
<button @click="toggle">切换</button>
<!-- 动态组件 -->
<component v-bind:is="name"></component>
<input type="checkbox">
</div>
<!-- 模板 -->
<template id="home">
<div>
<!-- 自定义组件中使用事件绑定 -->
<p>我是首页</p>
</div>
</template>
<!-- 模板 -->
<template id="photo">
<div>
<!-- 自定义组件中使用事件绑定 -->
<img src="images/1.jpg" alt="">
</div>
</template>
</body>
<script>
// 自定义全局组件
Vue.component("home", { //组件名
template: "#home", //对应模板id
data() {
return {
}
},
methods: { // 自定义组件 存储监听事件的回调函数
}
})
// 自定义全局组件
Vue.component("photo", { //组件名
template: "#photo", //对应模板id
data() {
return {
}
},
methods: { // 自定义组件 存储监听事件的回调函数
}
})
// -------------Vue实例---------------------------
// MVVM中的View Model
let vue = new Vue({
el: "#app",
// MVVM中的Model
data: {
isShow: true,
name: "home"
},
// 存储监听事件的回调函数
methods: {
toggle() {
this.isShow = !this.isShow
this.name = this.name === "home" ? "photo" : "home"
}
},
// 定义计算属性的
computed: {
},
})
</script>