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 相关文章推荐
Prototype1.5 rc2版指南最后一篇之Position
Jan 10 Javascript
niceTitle 基于jquery的超链接提示插件
May 31 Javascript
用js小类库获取浏览器的高度和宽度信息
Jan 15 Javascript
jQuery中each()方法用法实例
Dec 27 Javascript
jquery 中ajax执行的优先级
Jun 22 Javascript
EasyUI Pagination 分页的两种做法小结
Jul 09 Javascript
JavaScript获取服务器时间的方法详解
Dec 11 Javascript
javascript+jQuery实现360开机时间显示效果
Nov 03 jQuery
基于jQuery实现Ajax验证用户名是否可用实例
Mar 25 jQuery
JS实现的RC4加密算法示例
Aug 16 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
Apr 08 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
Oct 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 异常处理实现代码
2009/03/10 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
js 居中漂浮广告
2010/03/21 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
Python深入学习之装饰器
2014/08/31 Python
python编程羊车门问题代码示例
2017/10/25 Python
Python3实现购物车功能
2018/04/18 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
python使用gdal对shp读取,新建和更新的实例
2020/03/10 Python
parser.add_argument中的action使用
2020/04/20 Python
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
家居设计专业个人自荐信范文
2013/11/26 职场文书
员工合理化建议书
2014/05/19 职场文书
市场营销毕业求职信
2014/08/07 职场文书
普通党员对照检查材料
2014/08/28 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
2015年重阳节主持词
2015/07/04 职场文书
辞职申请书范本
2019/05/20 职场文书
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js