vue slot与传参实例代码讲解


Posted in Javascript onApril 28, 2019

插槽分为默认插槽和具名插槽:

默认插槽: 

//父组件
<div>
  <h3>父组件</h3>
  <testChild>
   <div>默认插槽</div>
  </testChild>
</div>

//子组件
<div>
 <h4>子组件</h4>
 <slot></slot>
</div>

vue slot与传参实例代码讲解

具名插槽:

  注意:具名插槽需要包裹在  template  标签中,否则会报错

//父组件
<div>
  <h3>父组件</h3>
  <testChild>
   <template v-slot:test>//v-slot: + 插槽名
    <ul>
     <li v-for="item in list">{{item.name}}</li>
    </ul>
   </template>
  </testChild>
 </div>
//子组件
 <div>
  <h4>子组件</h4>
  <slot name="test"></slot> //name="插槽名"
 </div>

vue slot与传参实例代码讲解

子组件向父组件传参:

//父组件 
 <div>
  <h3>父组件</h3>
  <testChild>
   <template v-slot:test="data">//具名插槽,v-slot: +插槽名+ ="自定义数据名",子组件所传参数都是其属性
    <ul>
     <li v-for="item in data.list2">{{item.name}}</li>
    </ul>
   </template>
   <template v-slot="dataDefalut">//默认插槽
    {{dataDefalut.sName}}
   </template>
  </testChild>
 </div>

//子组件
<template>
 <div>
  <h4>子组件</h4>
  <slot name="test" :list2="list2"></slot>
  <slot :sName="name"></slot>
 </div>
</template>
<script>
 export default {
  name: "testChild",
  data(){
   return {
    list2:[
     {name:'ccc'},
     {name:'ddd'}
    ],
    name:'name'
   }
  }
 }
</script>

结果:

vue slot与传参实例代码讲解

补充:vue 利用slot向父组件传值

闲话不多说,上代码

子组件,里面有slot插槽,并在slot上绑定了text值

<template>
 <div @click="$emit('change',checked+1)">
  <slot name="icon" :text="text"></slot>
 </div>
</template>
<script>
 export default{
  data(){
   return {
    text:"我是子组件"
   }
  },
  props:["checked"],
  model:{
   prop: 'checked',
   event: 'change'
  }
 }
</script>

父组件通过slot-scope就可以拿到子组件slot上绑定的值,并且2.5.0版本可以用于任意元素上

<template>
 <div id="app">
  <img src="./assets/logo.png">
  <!--<router-view/>-->
  <car v-model="index">
   <div slot="icon" slot-scope="props">
    {{props.text}}
   </div>
  </car>
 </div>
</template>

这样,就可以拿到子组件里面的text值。

总结

以上所述是小编给大家介绍的vue slot与传参实例代码讲解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
javascript 模拟JQuery的Ready方法实现并出现的问题
Dec 06 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
Jan 22 Javascript
Js 随机数产生6位数字
May 13 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
Jun 10 Javascript
jquery移动listbox的值原理及代码
May 03 Javascript
node.js中的fs.writeSync方法使用说明
Dec 15 Javascript
js实现仿Discuz文本框弹出层效果
Aug 13 Javascript
详解基于angular路由的requireJs按需加载js
Jan 20 Javascript
详解如何实现一个简单的Node.js脚手架
Dec 04 Javascript
react-native使用leanclound消息推送的方法
Aug 06 Javascript
使用Angular Cli如何创建Angular私有库详解
Jan 30 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
Aug 28 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
Apr 28 #Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
Apr 28 #jQuery
vue项目中在外部js文件中直接调用vue实例的方法比如说this
Apr 28 #Javascript
微信小程序--特定区域滚动到顶部时固定的方法
Apr 28 #Javascript
详解vue更改头像功能实现
Apr 28 #Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
Apr 28 #Javascript
js+html5 canvas实现ps钢笔抠图
Apr 28 #Javascript
You might like
PHP多线程抓取网页实现代码
2010/07/22 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
基于JQuery的密码强度验证代码
2010/03/01 Javascript
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
极简的Python入门指引
2015/04/01 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
中餐厅主管的职责范文
2014/02/04 职场文书
工作作风承诺书
2014/08/30 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
Python Pandas解析读写 CSV 文件
2022/04/11 Python