Vue笔记:slot插槽
2020-06-15 23:42
155 查看
solt插槽的基本使用
一、为什么使用插槽
组件的插槽是为了让封装的组件有更好的扩展性,让使用者决定要展示什么东西
二、插槽的简单实现
组件模板:
<template id="cpn"> <div> <h2>我是cpn</h2> <!-- <button type="button" @click="btnClick">确定</button> --> <slot></slot> </div> </template>
html代码中运用组件,并将不同的内容放入插槽
<cpn><button type="button">确定</button></cpn> <cpn><span>哈哈哈哈哈哈</span></cpn> <cpn><span>呵呵呵呵呵呵</span></cpn>
slot中可以定义默认的插槽,如果没有定义插槽中的东西会默认使用
slot中的默认值,如果有多个值放入插槽,会全部放入插槽中
三、具名插槽的使用
<template id="cpn"> <div> <slot name="left">左边的</slot> <slot name="center">中间的</slot> <slot name="right">右边的</slot> </div> </template>
使用:
<cpn><span slot="center">hahahahaha</span></cpn>
效果:
四、作用域插槽
手册中:父组件模板的所有东西都会在父级作用域内编译;子组件模板的左右东西都会在子级作用域内编译
对于实例中用到的数据,哪里注册的这个组件,就用哪里的数据
组件模板只会用组件内的数据,也就是组件注册时会要给到的data函数中的数据
案例
1、案例需求
子组件中包括一组数据,比如:
books:[“源氏”,“夕颜”,“紫姬”,“藤壶妃子”,“胧月夜”]
-
需要在多个页面进行展示:
- 水平方向展示
- 列表方式展示
- 展示数组
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div id="app"> <cpn> <h2>hello</h2> <template slot-scope="slot"> <div> <span v-for="item in slot.data">{{item}}-</span> <!--这个还可以写成<span>{{slot.data.join('-')}}</span>这个可以使最后一个短横没有--> </div> </template> </cpn> </div> <template id="cpn"> <div> <slot :data="characters"> <ul> <li v-for="item in characters">{{item}}</li> </ul> </slot> </div> </template> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> let cpn={ template:'#cpn', data(){ return { characters:["源氏","夕颜","紫姬","藤壶妃子","胧月夜"] } }, methods:{} } var app=new Vue({ el:'#app', data:{}, methods:{}, components:{ cpn } }) </script> </body> </html>
相关文章推荐
- Vue学习笔记 3 - 组件化 / slot(插槽)
- 个人笔记-----Vue中 slot 插槽【如有不对,欢迎指正】
- vue学习笔记之slot插槽用法实例分析
- vue学习笔记之slot插槽基本用法实例分析
- 详解vue slot插槽的使用方法
- vue动态组件和slot插槽
- 使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件
- vue slot插槽的使用方法
- vue slot插槽的小技巧
- vue-插槽slot
- Vue 2.0学习笔记:Vue组件内容分发(slot)
- Vue组件间通信3--slot插槽
- vue(9)----组件(2)slot插槽 动画过渡 动态组件
- Vue中的slot插槽
- vue中插槽slot的使用
- vue 插槽slot
- vue插槽使用与具名插槽使用(slot)
- Vue插槽slot
- vue中的 $slot 获取插槽的节点实例
- vue组件中插槽slot