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 相关文章推荐
解放web程序员的输入验证
Oct 06 Javascript
Javascript 继承机制的实现
Aug 12 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
Mar 04 Javascript
json属性名为什么要双引号(个人猜测)
Jul 31 Javascript
通过伪协议解决父页面与iframe页面通信的问题
Apr 05 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
May 25 Javascript
JavaScript中switch语句的用法详解
Jun 03 Javascript
js实现鼠标点击左上角滑动菜单效果代码
Sep 06 Javascript
javascript 内置对象及常见API详细介绍
Nov 01 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
Jan 31 Javascript
Vue press 支持图片放大功能的实例代码
Nov 09 Javascript
react 不用插件实现数字滚动的效果示例
Apr 14 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
收音机指标测试方法及仪器
2021/03/01 无线电
php表单处理操作
2017/11/16 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
node.js连接mysql与基本用法示例
2019/01/05 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
wxPython窗口中文乱码解决方法
2014/10/11 Python
Django model反向关联名称的方法
2018/12/15 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
Django框架视图函数设计示例
2019/07/29 Python
Python jieba库用法及实例解析
2019/11/04 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
2020/04/20 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
优秀部门获奖感言
2014/02/14 职场文书
英语教师自荐信
2014/05/26 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
罚款通知怎么写
2015/04/22 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书