详解Vue 多级组件透传新方法provide/inject


Posted in Javascript onMay 09, 2018

provide / inject 是 2.2 新增的方法,可以以一个祖先组件向所有子孙后代注入依赖(一个内容)。

provider/inject:简单的来说就是在父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量。

Vue 官方警告:

provide 和 inject 主要为高阶插件/组件库提供用例。并不推荐直接用于应用程序代码中。

当然,警告只是警告,你完全可以正常使用。

使用方法非常像 data 和 props 的组合大礼包:

var Provider = {
 provide: {
 foo: 'bar'
 },
 // ...
}
var Child = {
 inject: ['foo'],
 created () {
 console.log(this.foo) // => "bar"
 }
 // ...
}

唯一的区别是你不用再一层层的传入了,过去用的 event-bus 虽然可以解决深层问题,但是会导致整个 event-emit 组成过于混乱,难以维护。使用 provide / inject 可以保证父子单向数据流的清晰性。

在 React 中 Context 的 Provider / Consumer 也有相同的效果,由于还没有具体使用过,对 React 本身也只有一面之缘,留待以后在了解,感兴趣的同学可以 阅读文档 了解。

参考文章:

Vue 官方文档
Provide/Inject in Vue 2.2

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery ctrl+Enter shift+Enter实现代码
Feb 07 Javascript
jQuery EasyUI API 中文文档 搜索框
Sep 29 Javascript
jQuery UI插件自定义confirm确认框的方法
Mar 20 Javascript
JavaScript返回0-1之间随机数的方法
Apr 06 Javascript
JS截取与分割字符串常用技巧总结
Nov 10 Javascript
常用的js验证和数据处理总结
Aug 02 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
Mar 30 jQuery
jQuery:unbind方法的使用详解
Aug 14 jQuery
vue的toast弹窗组件实例详解
May 14 Javascript
Vue中使用sass实现换肤功能
Sep 07 Javascript
Vue+Spring Boot简单用户登录(附Demo)
Nov 12 Javascript
基于JavaScript实现简单的轮播图
Mar 03 Javascript
自定义vue组件发布到npm的方法
May 09 #Javascript
React Navigation 使用中遇到的问题小结
May 08 #Javascript
官方推荐react-navigation的具体使用详解
May 08 #Javascript
JavaScript callback回调函数用法实例分析
May 08 #Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
May 08 #Javascript
vue-cli 引入、配置axios的方法
May 08 #Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
May 08 #Javascript
You might like
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
CI配置多数据库访问的方法
2016/03/28 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
JavaScript enum枚举类型定义及使用方法
2020/05/15 Javascript
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
对python requests发送json格式数据的实例详解
2018/12/19 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
通信专业个人自我鉴定
2013/10/21 职场文书
美丽人生观后感
2015/06/03 职场文书
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android
JS数组去重详情
2021/11/07 Javascript