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 相关文章推荐
js 强制弹出窗口代码研究-又一款代码
Mar 20 Javascript
jquery实现简单易懂的图片展示小例子
Nov 21 Javascript
angular简介和其特点介绍
Jan 29 Javascript
jquery实现顶部向右伸缩的导航区域代码
Sep 02 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
May 12 Javascript
完美解决JS文件页面加载时的阻塞问题
Dec 18 Javascript
jQuery EasyUi 验证功能实例解析
Jan 06 Javascript
使用vue.js实现联动效果的示例代码
Jan 10 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
Apr 13 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
Sep 18 Javascript
JavaScript闭包相关知识解析
Oct 19 Javascript
如何在vue 中引入使用jquery
Nov 10 jQuery
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对大文件进行读取操作的实现代码
2013/01/23 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
htm调用JS代码
2007/03/15 Javascript
JavaScript 高级语法介绍
2009/06/15 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
使用get方式提交表单在地址栏里面不显示提交信息
2017/02/21 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
介绍Python中的文档测试模块
2015/04/28 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
Python csv模块使用方法代码实例
2019/08/29 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
Python实现爬取网页中动态加载的数据
2020/08/17 Python
python 多线程中join()的作用
2020/10/29 Python
HTML5本地存储之Database Storage应用介绍
2013/01/06 HTML / CSS
送给他或她的礼物:FUN.com
2018/08/17 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
Linux操作面试题
2015/02/11 面试题
贺卡寄语大全
2014/04/11 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
Python Socket编程详解
2021/04/25 Python