vue slots 组件的组合/分发实例


Posted in Javascript onSeptember 06, 2018

使用slots 分发内容

使用组件时常常会有组件组合使用的情况,如下:

<componentA>
<componentB></componentB>
<componentC></componentC>
</componentA>

直接套用组件的话,父级组件会将子级组件覆盖掉,不能实现需求的效果,为了实现该效果就需要使用 slots来内容分发

slots的使用方法如下:

<body>
 <div id="app">
 <app>
  <child></child>
  <child2></child2>
 </app>
 </div>
 </body>
 <script>
  Vue.component('app',{
  template:'\
 <div>\
  <slot>没有则显示这个</slot>\
  <li>111</li>\
  <li>222</li>\
  <li>333</li>\
 </div>\
 ',
  })
  var app=new Vue({
  el:'#app',
  components:{
  'child':{
   template:'<div>hello word</div>'
  },
  'child2':{
   template:'<div>hello vue js</div>'
  }
 
  }
 
  })
 </script>

vue slots 组件的组合/分发实例

<app></app>标签没有引入其他组件时显示为图1,有其他组件时显示为图2

同时可以实测到可以引入多个并列的组件,组件会依次显示

但是这只能解决单个 组件的引入 ,实际应用中需要多个应用的组件会在多个位置,为了解决这个问题,就得确定slot位置的唯一性为了确定slot 的vue 中可以给slot 添加行内 name来识别 ,

需要注意的是:同一父级下的slot 添加行内 name必须保证唯一;

子组件下的slot 的name 是可以与父级组件的slot name 重复的,及每一级具有相对独立性。

代码效果图如下:

<body>
 <div id="app">
 <app>
  <child slot="slot1">
 
  </child>
 
  <div slot="slot2">How to use slot?</div>
 
 </app>
 </div>
 </body>
 <script>
  Vue.component('app',{
  template:'\
 <div>\
  <slot name="slot1">没有则显示这个</slot>\
  <li>111</li>\
  <li>222</li>\
  <slot name="slot2">没有则显示这个</slot>\
  <li>333</li>\
 </div>\
 ',
  })
  var app=new Vue({
  el:'#app',
  components:{
  'child':{
   template:'<div>hello word\
    <li>22222</li>\
   </div>'
  },
  'child2':{
   template:'<div>hello vue js</div>'
  }
 
  }
 
  })
 </script>

vue slots 组件的组合/分发实例

以上这篇vue slots 组件的组合/分发实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js检测客户端不是firefox则提示下载
Apr 07 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
Apr 11 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
Mar 04 Javascript
JavaScript获取当前网页最后修改时间的方法
Apr 03 Javascript
浅谈javascript中call()、apply()、bind()的用法
Apr 20 Javascript
JS实现消息来时让网页标题闪动效果的方法
Apr 20 Javascript
JavaScript自学笔记(必看篇)
Jun 23 Javascript
yarn与npm的命令行小结
Oct 20 Javascript
认识jQuery的Promise的具体使用方法
Oct 10 jQuery
微信小程序实现全局搜索代码高亮的示例
Mar 30 Javascript
mpvue 单文件页面配置详解
Dec 02 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
Apr 11 Javascript
React注册倒计时功能的实现
Sep 06 #Javascript
node.js 模块和其下载资源的镜像设置的方法
Sep 06 #Javascript
Vue文件配置全局变量的实例
Sep 06 #Javascript
Vue中保存数据到磁盘文件的方法
Sep 06 #Javascript
jQuery超简单遮罩层实现方法示例
Sep 06 #jQuery
Vue实现表格中对数据进行转换、处理的方法
Sep 06 #Javascript
vue生成文件本地打开查看效果的实例
Sep 06 #Javascript
You might like
php出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
Javascript复制实例详解
2016/01/28 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
js获取Get值的方法
2016/09/29 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
javascript表单正则应用
2017/02/04 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
vue登录注册实例详解
2019/09/14 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
小小聊天室Python代码实现
2016/08/17 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
2019/12/12 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
Keras自定义IOU方式
2020/06/10 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
工商企业管理实习自我鉴定
2013/12/04 职场文书
食品安全工作方案
2014/05/07 职场文书
教书育人演讲稿
2014/09/11 职场文书
针对吵架老公保证书
2015/05/08 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
html5实现点击弹出图片功能
2021/07/16 HTML / CSS