详解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 相关文章推荐
在Z-Blog中运行代码[html][/html](纯JS版)
Mar 25 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
Nov 22 Javascript
js变形金刚文字特效代码分享
Aug 20 Javascript
JSONObject使用方法详解
Dec 17 Javascript
jquery对象和DOM对象的任意相互转换
Feb 21 Javascript
完美实现八种js焦点轮播图(下篇)
Apr 20 Javascript
Bootstrap整体框架之CSS12栅格系统
Dec 15 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
Feb 03 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
Mar 04 Javascript
通过实例了解JS 连续赋值
Sep 24 Javascript
Vue 请求传公共参数的操作
Jul 31 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
Jan 05 Vue.js
详解一个基于套接字实现长连接的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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
session 的生命周期是多长
2006/10/09 PHP
php for 循环语句使用方法详细说明
2010/05/09 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
菜单效果
2006/10/14 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
js文件Cookie存取值示例代码
2014/02/20 Javascript
js 实现的可折叠留言板(附源码下载)
2014/07/01 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
简单学习vue指令directive
2016/11/03 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
详解python读取image
2019/04/03 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
Python reversed函数及使用方法解析
2020/03/17 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
西安交大自主招生自荐信
2014/01/27 职场文书
五年级英语教学反思
2014/01/31 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
网络教育自我鉴定
2014/02/04 职场文书
家电业务员岗位职责
2014/03/10 职场文书
团日活动总结报告
2014/06/25 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书
mysql如何能有效防止删库跑路
2021/10/05 MySQL