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 相关文章推荐
新浪刚打开页面出来的全屏广告代码
Apr 02 Javascript
JavaScript的document对象和window对象详解
Dec 30 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
Feb 02 Javascript
使用PHP+JQuery+Ajax分页的实现
Apr 23 Javascript
jQuery中on()方法用法实例
Jan 19 Javascript
jquery+css实现的红色线条横向二级菜单效果
Aug 22 Javascript
谈谈AngularJs中的隐藏和显示
Dec 09 Javascript
JS中如何比较两个Json对象是否相等实例代码
Jul 13 Javascript
JavaScript 事件对内存和性能的影响
Jan 22 Javascript
Express系列之multer上传的使用
Oct 27 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
Dec 06 Javascript
如何通过Proxy实现JSBridge模块化封装
Oct 22 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 写文本日志实现代码
2010/05/18 PHP
PHP数据库调用类调用实例(详细注释)
2012/07/12 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
2014/07/28 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
Python中文件遍历的两种方法
2014/06/16 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
测试工程师岗位职责
2013/11/28 职场文书
体育教学随笔感言
2014/02/24 职场文书
办公设备采购方案
2014/03/16 职场文书
2014年基建工作总结
2014/12/12 职场文书
关于分班的感言
2015/08/04 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
Python基础之进程详解
2021/05/21 Python