vue插槽slot的简单理解与用法实例分析


Posted in Javascript onMarch 14, 2020

本文实例讲述了vue插槽slot的简单理解与用法。分享给大家供大家参考,具体如下:

vue中插槽的使用非常广泛,本文就插槽的使用和理解简单总结。

从字面理解插槽是预先插入一个代码空间,用于后期塞入数据。

插槽分类

匿名插槽     ------------------   匿名的代码空间

具名插槽     ------------------   带有命名的代码空间

作用域插槽 -------------------   带有数据的代码空间

插槽使用示例

匿名插槽

说明在组件中先定义预留的代码空间,组件在使用时直接写入代码

<template>
 <div class="child">
  <h3>这里是子组件</h3>
  <slot></slot>
 </div>
</template>

使用:

<template>
 <div class="father">
  <h3>这里是父组件</h3>
  <child>
   <div class="tmpl">
    <span>菜单1</span>
    <span>菜单2</span>
    <span>菜单3</span>
    <span>菜单4</span>
    <span>菜单5</span>
    <span>菜单6</span>
   </div>
  </child>
 </div>
</template>

具名插槽

预先在组件中定义一个带有名称的代码空间,使用组件时用:slot绑定名称

<template>
 <div class="child">
 // 具名插槽
 <slot name="up"></slot>
 <h3>这里是子组件</h3>
 // 具名插槽
 <slot name="down"></slot>
 // 匿名插槽
 <slot></slot>
 </div>
</template>

使用:

<template>
 <div class="father">
 <h3>这里是父组件</h3>
 <child>
  //插槽up
  <div class="tmpl" slot="up">
  <span>菜单1</span>
  <span>菜单2</span>
  <span>菜单3</span>
  <span>菜单4</span>
  <span>菜单5</span>
  <span>菜单6</span>
  </div>
  //插槽down
  <div class="tmpl" slot="down">
  <span>菜单-1</span>
  <span>菜单-2</span>
  <span>菜单-3</span>
  <span>菜单-4</span>
  <span>菜单-5</span>
  <span>菜单-6</span>
  </div>
  //匿名插槽
  <div class="tmpl">
  <span>菜单->1</span>
  <span>菜单->2</span>
  <span>菜单->3</span>
  <span>菜单->4</span>
  <span>菜单->5</span>
  <span>菜单->6</span>
  </div>
 </child>
 </div>
</template>

作用域插槽 (有数据,但放开了渲染)

在组件中预先定义一个带有数据资源的代码空间,使用组件时可以直接使用代码空间中的数据

定义

<template>
 <div class="child">
 
 <h3>这里是子组件</h3>
 // 作用域插槽
 <slot :data="data"></slot>
 </div>
</template>
export default {
 data: function(){
  return {
  data: ['zhangsan','lisi','wanwu','zhaoliu','tianqi','xiaoba']
  }
 }
}

使用

<template>
 <div class="father">
 <h3>这里是父组件</h3>
 <!--第一次使用:用flex展示数据-->
 <child>
  <template slot-scope="user">
  <div class="tmpl">
   <span v-for="item in user.data">{{item}}</span>
  </div>
  </template>
 
 </child>
 
 <!--第二次使用:用列表展示数据-->
 <child>
  <template slot-scope="user">
  <ul>
   <li v-for="item in user.data">{{item}}</li>
  </ul>
  </template>
 
 </child>
 
 <!--第三次使用:直接显示数据-->
 <child>
  <template slot-scope="user">
  {{user.data}}
  </template>
 
 </child>
 
 <!--第四次使用:不使用其提供的数据, 作用域插槽退变成匿名插槽-->
 <child>
  我就是模板
 </child>
 </div>
</template>

总结:

匿名插槽和具名插槽的功能是 预留插入代码的空间

作用域插槽是提供数据资源,预留代码渲染逻辑空间

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
用cookies实现的可记忆的样式切换效果代码下载
Dec 24 Javascript
jquery图片滚动放大代码分享(2)
Aug 28 Javascript
你不知道的高性能JAVASCRIPT
Jan 18 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
Jun 30 Javascript
用js读写cookie的简单方法(推荐)
Aug 08 Javascript
javascript设计模式Constructor(构造器)模式
Aug 19 Javascript
js实现类bootstrap模态框动画
Feb 07 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
Jun 04 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
Apr 12 jQuery
Vue如何实现监听组件原生事件
Jul 03 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
Jul 22 Javascript
Vue仿Bibibili首页的问题
Jan 21 Vue.js
es6中new.target的作用和使用场景简单示例分析
Mar 14 #Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
Mar 14 #Javascript
js中forEach,for in,for of循环的用法示例小结
Mar 14 #Javascript
JS原型prototype和__proto__用法实例分析
Mar 14 #Javascript
JS数组的高级使用方法示例小结
Mar 14 #Javascript
vue-resource post数据时碰到Django csrf问题的解决
Mar 13 #Javascript
js函数和this用法实例分析
Mar 13 #Javascript
You might like
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
P3P Header解决Cookie跨域的问题
2013/03/12 Javascript
jQuery点击弹出下拉菜单的小例子
2013/08/01 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
详解基于webpack&amp;gettext的前端多语言方案
2019/01/29 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
Python重新引入被覆盖的自带function
2014/07/16 Python
python使用threading获取线程函数返回值的实现方法
2017/11/15 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
python 获取字符串MD5值方法
2018/05/29 Python
python-str,list,set间的转换实例
2018/06/27 Python
python生成密码字典的方法
2018/07/06 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
医药代表个人的求职信分享
2013/12/08 职场文书
物流毕业生个人的自我评价
2014/02/13 职场文书
办公自动化毕业生求职信
2014/03/09 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
交警失职检讨书
2015/01/26 职场文书
安全教育日主题班会
2015/08/13 职场文书
六年级数学教学反思
2016/02/16 职场文书
三好学生竞选稿范文
2019/08/21 职场文书
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python