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学习笔记7 原型链的原理
Jan 11 Javascript
jQuery插件开发基础简单介绍
Jan 07 Javascript
提取jquery的ready()方法单独使用示例
Mar 25 Javascript
JavaScript实现添加、查找、删除元素
Jul 02 Javascript
JavaScript获取浏览器信息的方法
Nov 20 Javascript
JavaScript实现鼠标点击导航栏变色特效
Feb 08 Javascript
在js中做数字字符串补0(js补零)
Mar 25 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
May 08 Javascript
js实现图片上传到服务器和回显
Jan 19 Javascript
javascript History对象原理解析
Feb 17 Javascript
JavaScript实现拖拽和缩放效果
Aug 24 Javascript
js实现验证码干扰(静态)
Feb 22 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连接access数据库
2008/03/27 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
laravel开发环境homestead搭建过程详解
2020/07/03 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
js简单抽奖代码
2015/01/16 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
浅谈Fetch 数据交互方式
2018/12/20 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
Python中的闭包总结
2014/09/18 Python
python计算牛顿迭代多项式实例分析
2015/05/07 Python
详解Python中的文件操作
2021/01/14 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
商场租赁意向书
2014/07/30 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
python如何进行基准测试
2021/04/26 Python
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL