Vue匿名插槽与作用域插槽的合并和覆盖行为


Posted in Javascript onApril 22, 2019

Vue 测试版本:Vue.js v2.5.13

Vue 文档:

<slot> 元素可以用一个特殊的特性 name 来进一步配置如何分发内容。多个插槽可以有不同的名字。具名插槽将匹配内容片段中有对应 slot 特性的元素。

仍然可以有一个匿名插槽,它是默认插槽,作为找不到匹配的内容片段的备用插槽。

具体应用的时候:

1、匿名插槽的合并行为:

<div id="app">
    <myele>
      <div>
        default slot
      </div>
      <div>
        <div>from parent!</div>
        <div>from parent!</div>
      </div>
    </myele>
  </div>
window.onload = function() {
  Vue.component('myele', {
    template: `         
     <div>
     <slot></slot>
     </div>
    `
  }); 
  new Vue({
    el: '#app'
  });
};

效果:内容合并

Vue匿名插槽与作用域插槽的合并和覆盖行为

2、匿名作用域插槽的覆盖行为:

<div id="app">
    <myele>
      <div slot-scope="props">
        <div>from parent!</div>
        <div>from {{props.text}}</div>
      </div>
      <div slot-scope="prop">
        <div>from </div>
        <div>{{prop.text}}</div>
      </div>    
    </myele>
  </div>
window.onload = function() {
  Vue.component('myele', {
    template: `         
     <div>     
     <slot text="child"></slot>
     <slot text="child2"></slot>
//即使 text 和上一行一样,也不会报错,开发环境     </div>
    `
  }); 
  new Vue({
    el: '#app'
  });
};

效果:以靠后的作用域插槽模板为准,绘制了两遍;

Vue匿名插槽与作用域插槽的合并和覆盖行为

3、匿名插槽模板和作用域插槽模板混合:

<div id="app">
    <myele>
      <div>
        default slot
      </div>      
      <div slot-scope="props">
        <div>from parent!</div>
        <div>from {{props.text}}</div>
      </div>
    </myele>
  </div>
window.onload = function() {
  Vue.component('myele', {
    template: `         
     <div>     
     <slot></slot>
     <slot text="child"></slot>
     </div>
    `
  }); 
  new Vue({
    el: '#app'
  });
};

效果:匿名插槽以匿名作用域插槽模板为准进行渲染,即使你把匿名插槽模板放后面,也是一样的结果;

Vue匿名插槽与作用域插槽的合并和覆盖行为

由此可以看出,最好不要使用匿名、默认插槽,最好使用具名插槽,可以减少不确定性;

参考文档:

https://cn.vuejs.org/v2/guide/components.html#具名插槽

总结

以上所述是小编给大家介绍的Vue匿名插槽与作用域插槽的合并和覆盖行为,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jquery ready函数、css函数及text()使用示例
Sep 27 Javascript
JS图片自动轮换效果实现思路附截图
Apr 30 Javascript
javascript简单实现滑动菜单效果的方法
Jul 27 Javascript
JavaScript对HTML DOM使用EventListener进行操作
Oct 21 Javascript
原生javascript实现图片无缝滚动效果
Feb 12 Javascript
分享一个原生的JavaScript拖动方法
Sep 25 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
Dec 12 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
Dec 25 jQuery
JS中的一些常用的函数式编程术语
Jun 15 Javascript
浅谈vuex的基本用法和mapaction传值问题
Nov 08 Javascript
vue:el-input输入时限制输入的类型操作
Aug 05 Javascript
JavaScript实现打字游戏
Feb 19 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
Apr 22 #Javascript
详解Node.js一行命令上传本地文件到服务器
Apr 22 #Javascript
使用 vue 实例更好的监听事件及vue实例的方法
Apr 22 #Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
Apr 22 #Javascript
关于vue-cli 3配置打包优化要点(推荐)
Apr 22 #Javascript
说说如何利用 Node.js 代理解决跨域问题
Apr 22 #Javascript
详解Vue中使用Axios拦截器
Apr 22 #Javascript
You might like
人大复印资料处理程序_输入篇
2006/10/09 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
php 高性能书写
2010/12/11 PHP
PHP开发框架kohana中处理ajax请求的例子
2014/07/14 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
Prototype使用指南之string.js
2007/01/10 Javascript
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
理解JS绑定事件
2016/01/19 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
9种方法优化jQuery代码详解
2020/02/04 jQuery
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
详解vite+ts快速搭建vue3项目以及介绍相关特性
2021/02/25 Vue.js
Python中取整的几种方法小结
2017/01/06 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
JAVA高级程序员面试题
2013/09/06 面试题
怎样客观的做好自我评价
2013/12/28 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python