作者是名退役复学在校大学生,对jdk、spring、springboot、springcloud、mybatis等开源框架源码有一定研究,欢迎关注,和我一起交流。
一个页面逻辑很多,放在一起不利于管理,不利于开发,将一个页面分割成小小的功能块
vue组件化
应用:任何应用都是一颗组件树
省去Vue.extend()的调用,可以直接使用一个对象代替
Vue.component("myCpn", {
template: `
<div>
<h1>广告</h1>
<h2>广告内容</h2>
</div>
`,
});
简单理解,在谁的div里面去使用的组件,就是这个对应的子组件
<div id="app">
<father-cpn></father-cpn>
</div>
<script>
Vue.component("fatherCpn", {
template: `
<div>
<h1>父组件</h1>
<son></son>
</div>
`,
// 子组件(局部组件)
components:{
son:{
template:` <h1>子组件</h1>`
}
}
});
new Vue({
el: "#app",
data: {},
});
<!-- 方法一 -->
<script type="text-template" id="cpn1">
<div>
<h1>模板抽离方法一</h1>
</div>
</script>
<!-- 方法二 -->
<template id="cpn2">
<div>
<div class="box">
<h1>模板抽离方法二</h1>
</div>
</div>
</template>
组件是一个单独功能模块分装
这个模块拥有自己html,data,methons....
data是一个函数
data(){
retrun {
}
}
(1)父组件向子组件通信
子组件使用props接收父组件传递的参数
props:
(2)子组件向父组件通信
写一个自定义方法
this.$emit("方法-名称",传递参数)