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 相关文章推荐
jquery插件之easing使用
Aug 19 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
Jan 04 Javascript
JS模板实现方法
Apr 03 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
Apr 02 Javascript
基于JavaScript实现网页倒计时自动跳转代码
Dec 28 Javascript
Bootstrap布局方式详解
May 27 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
May 31 Javascript
简述jQuery Easyui一些用法
Aug 01 jQuery
一个小时快速搭建微信小程序的方法步骤
Apr 15 Javascript
微信小程序实现的绘制table表格功能示例
Apr 26 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
Jan 22 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
Feb 13 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
PHP4 与 MySQL 交互使用
2006/10/09 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
Move.js入门
2017/02/08 Javascript
JavaScript实现短信倒计时60s
2017/10/09 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
自学python的建议和周期预算
2019/01/30 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
描述内存分配方式以及它们的区别
2016/10/15 面试题
质检员岗位职责
2013/12/17 职场文书
卫生安全检查制度
2014/02/04 职场文书
自荐书范文范例
2014/02/13 职场文书
党员创先争优活动总结
2014/05/04 职场文书
关于青春的演讲稿
2014/05/05 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
Python数据处理的三个实用技巧分享
2022/04/01 Python