详解vue使用插槽分发内容slot的用法


Posted in Javascript onMarch 28, 2019

将父组件的内容放到子组件指定的位置叫做内容分发

//在父组件里使用子组件
<son-tmp>
	<div>我是文字,我需要放到son-tmp组件里面制定的位置</div>
</son-tmp>

单个插槽

父组件app.vue

<template>
 <div id="app">
  <test-slot>
   <span>我是父组件里的文字,但是我要被放到子组件里</span>
  </test-slot>
 </div> 
</template> 
 
<script>
import testSlot from './components/testSlot'
export default {
 data(){
  return {
   
  }
 },
 components:{
  testSlot
 }
}
</script>

<style>

</style>

子组件testSlot.vue

<template>
 <div>
  <h3>test-slot</h3>
  //父组件里的span会替换掉slot所以这里的123是看不见的
  //如果父组件在使用子组件testSlot的时候不在里面加内容则这里的slot会显示出来
  <slot>123</slot> 
 </div> 
</template> 
 
<script>
export default { 
 data(){
  return {
   
  }
 }
}
</script>

<style>

</style>

效果图:

详解vue使用插槽分发内容slot的用法

多个插槽也叫具名插槽

具名插槽就是将某个名字的内容插到子组件对应名字里面去

父组件app.vue

<template>
 <div id="app">
	//使用子组件testSlot
  <test-slot>
	 //slot=one这个div会替换掉子组件里name="one"的slot标签
   <div slot="one">
    <span>one</span>
    <span>第一个</span>
   </div> 
   //这个div没有用slot指定名字所以会替换掉子组件里没有name属性的slot标签
   <div>
    <span>此div没有slot</span>
   </div>
   //slot=two这个div会替换掉子组件里name="two"的slot标签
   <div slot="two">
    <span>two</span>
    <span>第二个</span>
   </div> 
  </test-slot>
 </div> 
</template> 
 
<script>
import testSlot from './components/testSlot'
export default {
 data(){
  return {
   
  }
 },
 components:{
  testSlot
 }
}
</script>

<style>

</style>

子组件testSlot.vue

<template>
 <div class="testSlot">
  <div class="noneSlot">
   <slot></slot> 
  </div>
  <div class="test-two">
   <slot name="two"></slot> 
  </div>
  <div class="test-one">
   <slot name="one"></slot> 
  </div>
 </div> 
</template> 
 
<script>
export default { 
 data(){
  return {
   
  }
 }
}
</script>

<style>

</style>

详解vue使用插槽分发内容slot的用法

作用域插槽(将子组件的值传到父组件供使用)

父组件app.vue

<template>
 <div id="app">
  <h2>app</h2>
   <test-slot :items="items">
    <template slot-scope="props">
     <span>{{ props.addr }}</span>
     <span>{{ props.cname }}</span>
     <span>{{ props.age }}</span>
    </template>
   </test-slot>
 </div>
</template>

<script>
import testSlot from './components/testSlot.vue'
export default {
 data (){
  return {
   items:[
    { text:'文字1' , cname:'tom' , addr:'usa' },
    { text:'文字2' , cname:'wangwu' , addr:'uk' },
    { text:'文字3' , cname:'zhangsan' , addr:'un' }
   ]
  }
 },
 methods:{
  
 },
 components:{
  testSlot
 }
}
</script>

<style>

</style>

子组件testSlot.vue

<template>
 <div class="hello">
  <slot :cname="items[2].cname"></slot> 
  <slot :addr="items[2].addr"></slot> 
  <slot age="18"></slot> 
 </div>
</template>

<script>
export default {

 data () {
  return {
   num:100
  } 
 },
 props:['items'],
 methods:{
  
 },
 created(){
  console.log('items',this.$props.items);
 }
}
</script>

<style scoped>

</style>

效果图:

详解vue使用插槽分发内容slot的用法

以上所述是小编给大家介绍的vue使用插槽分发内容slot的用法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 图片上一张下一张链接效果代码
Mar 12 Javascript
Jquery中dialog属性小记
Sep 03 Javascript
JS window对象的top、parent、opener含义介绍
Dec 03 Javascript
Jquery Ajax方法传值到action的方法
May 11 Javascript
JS判断客服QQ号在线还是离线状态的方法
Jan 13 Javascript
Node.js 学习笔记之简介、安装及配置
Mar 03 Javascript
Knockoutjs 学习系列(二)花式捆绑
Jun 07 Javascript
Angular2使用jQuery的方法教程
May 28 jQuery
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
Sep 22 Javascript
浅析Vue中method与computed的区别
Mar 06 Javascript
Vue下路由History模式打包后页面空白的解决方法
Jun 29 Javascript
关于AOP在JS中的实现与应用详解
May 06 Javascript
详解一个基于套接字实现长连接的express
Mar 28 #Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
Mar 28 #Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
Mar 28 #Javascript
深入理解es6块级作用域的使用
Mar 28 #Javascript
详解在网页上通过JS实现文本的语音朗读
Mar 28 #Javascript
详解React服务端渲染从入门到精通
Mar 28 #Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
Mar 28 #Javascript
You might like
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
javascript 限制输入脚本大全
2009/11/03 Javascript
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
JS 面向对象之继承---多种组合继承详解
2016/07/10 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
js实现坦克大战游戏
2020/02/24 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
Django内容增加富文本功能的实例
2017/10/17 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
java判断三位数的实例讲解
2019/06/10 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
keras得到每层的系数方式
2020/06/15 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
Reformation官网:美国女装品牌
2018/09/14 全球购物
什么是属性访问器
2015/10/26 面试题
材料会计岗位职责
2014/03/06 职场文书
幼儿园大班区域活动总结
2014/07/09 职场文书
商铺消防安全责任书
2014/07/29 职场文书
陕西导游词
2015/02/04 职场文书
送达通知书
2015/04/25 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
Win Server2016远程桌面如何允许多用户同时登录
2022/06/10 Servers