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的gamequery插件做JS乒乓球游戏
Jul 31 Javascript
JS 去除Array中的null值示例代码
Nov 20 Javascript
Javascript判断图片尺寸大小实例分析
Jun 16 Javascript
JS数组(Array)处理函数整理
Dec 07 Javascript
bootstrap网页框架的使用方法
May 10 Javascript
jQuery手指滑动轮播效果
Dec 22 Javascript
深入理解Javascript中的valueOf与toString
Jan 04 Javascript
three.js中文文档学习之创建场景
Nov 20 Javascript
详解创建自定义的Angular Schematics
Jun 06 Javascript
angular4自定义表单控件[(ngModel)]的实现
Nov 23 Javascript
vue使用一些外部插件及样式的配置代码
Nov 18 Javascript
js 数组当前行添加数据方法详解
Jul 28 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
HTML中嵌入PHP的简单方法
2016/02/16 PHP
javascript里的条件判断
2007/02/27 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
初识Javascript小结
2015/07/16 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python高效编程技巧
2013/01/07 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
Python 比较两个数组的元素的异同方法
2017/08/17 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
python实现在一个画布上画多个子图
2020/01/19 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
制药工程专业个人求职自荐信
2014/01/25 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL