📖Vue-cli 组件与插槽
前言
写一篇文章巩固一下组件与插槽的知识
组件
<组件是 Vue 中强大的功能之一,可以重复利用组件中的代码如(头部,底部,侧边栏等重复性高的代码块)>,其中组件分为全局注册组件与局部注册组件,全局组件指只需引用一次即可在全局中使用,局部组件只在被其他组件引用的时候才可以,麻烦的就是需要每次引用
插槽
<插槽类似与主板上的那些插槽,每个插槽有它不同的功能,插槽之间相互独立也常用于组件之间的通信>,插槽分为匿名插槽,具名插槽,作用域插槽
开始记录
组件
局部组件
<butone></butone> //index.vue import butone from '@/components/componented/button_one'//组件 export default { name: 'component', data(){ }, components:{ 'butone':butone, //注册组件 }
全局组件
//main.js import button_two from '@/components/componented/button_two'//引入组件 Vue.component("buttwo",button_two)//全局注册组件 //index.js <buttwo></buttwo>//直接调用即可
组件之间的传值
父组件传值子组件
前面我们已经将组件注册好了,下面直接开始传值
//index.vue (父组件) <buttwo :text='futext'></buttwo> //button_two.vue (子组件) <p>这是父组件传递过来的参数:{{text}}</p> export default { name: 'button_two', data(){ }, props:["text"], }
子组件传值父组件
//index.vue (父组件) <butone @button_one='butone'></butone> //button_one (子组件) <button @click='butone'>我是 button_one-{{number}}</button> export default { name: 'button_one', data(){ return { number:1 } }, methods:{ butone(){ this.number++; this.$emit("button_one",this.number); } }, }
插槽
匿名插槽
//index.vue (父组件) <chaone>我是传递的值</chaone> //cha_one.vue (子组件) <slot></slot>
具名插槽
//index.vue (父组件) <chatwo v-slot:cha_two>{{jumin}}</chatwo> //cha_two.vue (子组件) <slot name='cha_two'></slot>
作用域插槽
//index.vue (父组件) <chathree v-slot:cha_three='slotProps'>{{slotProps.navFooter}}</chathree> //cha_three.vue (子组件) <slot name='cha_three' :navFooter='three_text'></slot> export default { name: 'cha_three', data(){ return { three_text:'这是插槽3的内容' } } }