博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue跨层级传递slot的方法
阅读量:4699 次
发布时间:2019-06-09

本文共 807 字,大约阅读时间需要 2 分钟。

因为业务需要,我们的vue组件分了很多层。但我需要在父组件通过slot指定模板,但不在子组件渲染,而是在孙组件或是再下方的组件去渲染。

比如,我有一个通用的A组件,A组件内引用了B组件,B组件又引用了C组件。C组件的模板内有一部分是需要在A组件中来配置的。

因为中间间隔了1层以上的组件,所以没法通过一般的slot方式解决。于是研究了一下vue的scoped-slots,感慨vue的设计真是很灵活,可以很方便实现。

 

1、首先,引用A组件的模板:

 

2.1、如果B组件是模板方式,引用B组件的模板:

...
...

2.2、如果B组件是通过render的脚本方式渲染的,可以这样:

render(h){    return h(ComponentC, {        props: {            ...        },        scopedSlots: self.$scopedSlots,        on: {           ...        }    })}

 

3、C的模板:

...
...

 

 

通过分析Vue源码,Vue的scopedSlots中是一个个渲染函数(并不是VNode)。在B组件中通过这些函数传递给C组件,从而实现了跨层传递slots。

 

转载于:https://www.cnblogs.com/hz-blog/p/vue-slots-transmit-through-levels.html

你可能感兴趣的文章
W3100SM-S 短信猫代码发送 上
查看>>
打开一个页面,并监听该页面的关闭事件
查看>>
软件保护技术--- 常见保护技巧
查看>>
SQL批量分离工具
查看>>
Erlang与ActionScript3采用JSON格式进行Socket通讯
查看>>
python数据类型--数字、字符串
查看>>
CentOS7使用firewalld打开关闭防火墙与端口
查看>>
Servlet实现图片读取显示
查看>>
基于深度学习的目标检测研究进展
查看>>
POJ 1469 COURSES 二分图最大匹配
查看>>
13.python中的字典
查看>>
算法竞赛入门经典_3.1_数组_逆序输出_开灯问题
查看>>
android中Stub Proxy答疑
查看>>
jQuery的表单验证
查看>>
Postman 安装与使用
查看>>
二下文理 1 A
查看>>
Codeforces Round #315 (Div. 1) A. Primes or Palindromes? 暴力
查看>>
Codeforces Beta Round #97 (Div. 1) C. Zero-One 数学
查看>>
Linux IO模式及 select、poll、epoll详解
查看>>
MVC3和MVC4内置Razor引擎的差异
查看>>