详解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 相关文章推荐
个人总结的一些关于String、Function、Array的属性和用法
Jan 10 Javascript
JavaScript 组件之旅(二)编码实现和算法
Oct 28 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
Nov 12 Javascript
JS编程小常识很有用
Nov 26 Javascript
jquery二级导航内容均分的原理及实现
Aug 13 Javascript
js怎么覆盖原有方法实现重写
Sep 04 Javascript
jQuery+jRange实现滑动选取数值范围特效
Mar 14 Javascript
浅谈JavaScript异常处理语句
Jun 26 Javascript
jQuery简单实现仿京东分类导航层效果
Jun 07 Javascript
使用nvm和nrm优化node.js工作流的方法
Jan 17 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
May 17 Javascript
浅谈Vue SSR中的Bundle的具有使用
Nov 21 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中$this和$that指针使用实例
2015/01/06 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
利用 fsockopen() 函数开放端口扫描器的实例
2017/08/19 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
2016/08/05 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
2020/03/26 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
教师自荐信
2013/12/10 职场文书
给实习单位的感谢信
2014/02/01 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
2014年接待工作总结
2014/11/26 职场文书