详解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 相关文章推荐
Packer 3.0 JS压缩及混淆工具 下载
May 03 Javascript
js 复制或插入Html的实现方法小结
May 19 Javascript
jquery插件开发注意事项小结
Jun 04 Javascript
jquery弹出层类代码分享
Dec 27 Javascript
Node.js中对通用模块的封装方法
Jun 06 Javascript
Javascript中call和apply函数的比较和使用实例
Feb 03 Javascript
javascript实现动态导入js与css等静态资源文件的方法
Jul 25 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
Mar 30 Javascript
AngularJS折叠菜单实现方法示例
May 18 Javascript
解决vue打包项目后刷新404的问题
Mar 06 Javascript
mint-ui在vue中的使用示例
Apr 05 Javascript
详解使用vue-admin-template的优化历程
May 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
php使用curl详细解析及问题汇总
2016/08/11 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
学习ExtJS accordion布局
2009/10/08 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
BootStrap table表格插件自适应固定表头(超好用)
2016/08/24 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
pymongo实现多结果进行多列排序的方法
2015/05/16 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
Python列表切片操作实例总结
2019/02/19 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
最小二乘法及其python实现详解
2020/02/24 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
如何使用PHP session
2015/04/21 面试题
介绍一下Java中的Class类
2015/04/10 面试题
竞选班委演讲稿
2014/04/28 职场文书
给市场的环保建议书
2014/05/14 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
三八妇女节致辞
2015/07/31 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫