详解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 定时器调用传递参数的方法
Nov 12 Javascript
js将控件隐藏的方法及display属性介绍
Jul 04 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
Sep 24 Javascript
JS实现简单的键盘打字的效果
Apr 24 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
Jul 03 Javascript
angular或者js怎么确定选中ul中的哪几个li
Aug 16 Javascript
seajs中最常用的7个功能、配置示例
Oct 10 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
Feb 16 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
Dec 13 Javascript
详解JavaScript的数据类型以及数据类型的转换
Apr 20 Javascript
vue spa应用中的路由缓存问题与解决方案
May 31 Javascript
使用JS来动态操作css的几种方法
Dec 18 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 list()函数的详解
2013/06/05 PHP
PHP代码优化技巧小结
2015/09/29 PHP
PDO::_construct讲解
2019/01/27 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
Vue表单验证插件的制作过程
2017/04/01 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
[01:00:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第三场 1月10日
2021/03/11 DOTA
python实现下载整个ftp目录的方法
2017/01/17 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
python简单实现AES加密和解密
2019/03/28 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
什么是GWT的Entry Point
2013/08/16 面试题
2015年秋季灭鼠工作总结
2015/07/27 职场文书
tomcat下部署jenkins的方法
2022/05/06 Servers
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers