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 相关文章推荐
document.write的几点使用心得
May 14 Javascript
jQuery控制TR显示隐藏的几种方法
Jun 18 Javascript
基于jQuery实现表单提交验证
Nov 24 Javascript
javascript使用call调用微信API
Dec 15 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
Jun 07 Javascript
Bootstrap插件全集
Jul 18 Javascript
jQuery实现的tab标签切换效果示例
Sep 05 Javascript
JavaScript中常用的验证reg
Oct 13 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
Jul 27 Javascript
详解jquery插件jquery.viewport.js学习使用方法
Sep 08 jQuery
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
jquery实现垂直手风琴菜单
Mar 04 jQuery
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
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
自动更新作用
2006/10/08 Javascript
List the Codec Files on a Computer
2007/06/18 Javascript
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
python实现批量获取指定文件夹下的所有文件的厂商信息
2014/09/28 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
下载官网python并安装的步骤详解
2019/10/12 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
个人考核材料
2014/05/15 职场文书
城市创卫标语
2014/06/17 职场文书
奶茶店创业计划书
2014/08/14 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python