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 相关文章推荐
jQuery EasyUI 开源插件套装 完全替代ExtJS
Mar 24 Javascript
jQuery对象与DOM对象之间的转换方法
Apr 15 Javascript
JavaScript Array对象扩展indexOf()方法
May 09 Javascript
详解JavaScript中的blink()方法的使用
Jun 08 Javascript
谈谈因Vue.js引发关于getter和setter的思考
Dec 02 Javascript
获取IE浏览器Cookie信息的方法
Jan 23 Javascript
ECMAScript6 新特性范例大全
Mar 24 Javascript
纯js代码生成可搜索选择下拉列表的实例
Jan 11 Javascript
仿淘宝JSsearch搜索下拉深度用法
Jan 15 Javascript
uni app仿微信顶部导航条功能
Sep 17 Javascript
初学vue出现空格警告的原因及其解决方案
Oct 31 Javascript
js不常见操作运算符总结
Nov 20 Javascript
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
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
JS模板实现方法
2013/04/03 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python 判断自定义对象类型
2009/03/21 Python
python使用wxpython开发简单记事本的方法
2015/05/20 Python
深入理解Python中的内置常量
2017/05/20 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
销售员求职个人的自我评价
2014/02/19 职场文书
大学自主招生推荐信
2014/05/10 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
遗嘱范文
2015/08/07 职场文书
计算机实训心得体会
2016/01/14 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python