详解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显示和隐藏 常用的状态判断方法
Jan 29 Javascript
js获取页面及个元素高度、宽度的代码
Apr 26 Javascript
jquery简单插件制作(fn.extend)完整实例
May 24 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
Jun 23 Javascript
jquery实现网页定位导航
Aug 23 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
Nov 29 Javascript
bootstrap下拉菜单使用方法解析
Jan 13 Javascript
常用的js方法合集
Mar 10 Javascript
基于Node.js实现压缩和解压缩的方法
Feb 13 Javascript
AngularJS 应用模块化的使用
Apr 04 Javascript
JavaScript中的"=、==、==="区别讲解
Jan 22 Javascript
vant IndexBar实现的城市列表的示例代码
Nov 20 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
牡丹941资料
2021/03/01 无线电
php session劫持和防范的方法
2013/11/12 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
PHP之header函数详解
2021/03/02 PHP
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
JavaScript手机振动API
2016/06/11 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
@angular前端项目代码优化之构建Api Tree的方法
2018/12/24 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
python仿evething的文件搜索器实例代码
2019/05/13 Python
Python实现某论坛自动签到功能
2019/08/20 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
葬礼司仪主持词
2014/03/31 职场文书
校园安全演讲稿
2014/05/09 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
七一建党节慰问信
2015/02/14 职场文书
师范生见习自我总结
2015/06/23 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技