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 相关文章推荐
理解Javascript_11_constructor实现原理
Oct 18 Javascript
BOM与DOM的区别分析
Oct 26 Javascript
jQuery+ajax实现无刷新级联菜单示例
May 21 Javascript
javascript伸缩菜单栏实现代码分享
Nov 12 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
Jan 21 Javascript
js拖拽功能实现代码解析
Nov 28 Javascript
angular 动态组件类型详解(四种组件类型)
Feb 22 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
Jun 14 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
Jun 28 Javascript
vue.js整合mint-ui里的轮播图实例代码
Dec 27 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
Mar 09 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 编程安全性小结
2010/01/08 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/10/05 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
js正则匹配多个全部数据问题
2019/12/20 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
Python装饰器用法与知识点小结
2020/03/09 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
非功能性需求都包括哪些方面
2013/10/29 面试题
开学典礼主持词
2014/03/19 职场文书
生物学专业求职信
2014/07/23 职场文书
公司员工安全协议书
2014/11/21 职场文书
银行安全保卫工作总结
2015/08/10 职场文书