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 相关文章推荐
浅析Prototype的模板类 Template
Dec 07 Javascript
你需要知道的10个最佳javascript开发实践小结
Apr 15 Javascript
extjs 时间范围选择自动判断的实现代码
Jun 24 Javascript
Flexigrid在IE下不显示数据的有效处理方法
Sep 04 Javascript
javascript表格的渲染组件
Jul 03 Javascript
PassWord输入框代码分享
Jun 07 Javascript
JS中使用FormData上传文件、图片的方法
Aug 07 Javascript
jQuery实现产品对比功能附源码下载
Aug 09 Javascript
将form表单通过ajax实现无刷新提交的简单实例
Oct 12 Javascript
Vue.js基础学习之class与样式绑定
Mar 20 Javascript
如何实现js拖拽效果及原理解析
May 08 Javascript
JavaScript模拟实现网易云轮播效果
Apr 04 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 无限级数据JSON格式及JS解析
2010/07/17 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
php+mysql实现无限级分类
2015/11/11 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
再次分享18个非常棒的jQuery表格插件
2011/04/10 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
javascript通过className来获取元素的简单示例代码
2014/01/10 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
jQuery+ajax读取并解析XML文件的方法
2016/09/09 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
用Pygal绘制直方图代码示例
2017/12/07 Python
python简单贪吃蛇开发
2019/01/28 Python
Python线程之定位与销毁的实现
2019/02/17 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
Python 如何提高元组的可读性
2019/08/26 Python
django的autoreload机制实现
2020/06/03 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
2020/06/22 Python
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
新年爱情寄语
2014/04/08 职场文书
爱心捐助倡议书
2014/05/19 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL