详解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 相关文章推荐
javascript使用正则控制input输入框允许输入的值方法大全
Jun 19 Javascript
IE6浏览器中window.location.href无效的解决方法
Nov 20 Javascript
javascript实现根据时间段显示问候语的方法
Jun 18 Javascript
Jquery实现仿京东商城省市联动菜单
Nov 19 Javascript
多种js图片预加载实现方式分享
Feb 19 Javascript
jquery对象和DOM对象的任意相互转换
Feb 21 Javascript
jQuery页面弹出框实现文件上传
Feb 09 Javascript
令按钮悬浮在(手机)页面底部的实现方法
May 02 Javascript
JS使用贪心算法解决找零问题示例
Nov 27 Javascript
vue中的ref和$refs的使用
Nov 22 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
Jun 10 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 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输出xml格式字符串(用的这个)
2012/07/12 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
php两种无限分类方法实例
2015/04/21 PHP
详解PHP中的PDO类
2015/07/06 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
php自定义时间转换函数示例
2016/12/07 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
2017/08/11 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
js一组验证函数
2008/12/20 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
php对mongodb的扩展(小试牛刀)
2012/11/11 Javascript
jquery iframe操作详细解析
2013/11/20 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
2015/05/03 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
React降级配置及Ant Design配置详解
2018/12/27 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
使用Python爬取弹出窗口信息的实例
2020/03/14 Python
python实现对变位词的判断方法
2020/04/05 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
外贸业务员求职信范文
2013/12/12 职场文书
2014新年寄语
2014/01/20 职场文书
采购求职信
2014/03/17 职场文书
高一新生军训方案
2014/05/12 职场文书
材料员岗位职责范本
2015/04/11 职场文书
汽车销售合同文本
2019/08/08 职场文书
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android