详解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优缺点分析说明
Apr 10 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
Oct 11 Javascript
js实现div的切换特效上一个下一个
Feb 11 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
Jan 12 Javascript
JS定义类的六种方式详解
May 12 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
Dec 12 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
Jun 19 Javascript
vue 的keep-alive缓存功能的实现
Mar 22 Javascript
express框架中使用jwt实现验证的方法
Aug 25 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
May 14 Javascript
浏览器JavaScript调试功能无法使用解决方案
Sep 18 Javascript
手写Spirit防抖函数underscore和节流函数lodash
Mar 22 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构造函数实例讲解
2013/11/13 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
2018/05/23 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
php源码的安装方法和实例
2019/09/26 PHP
javascript的函数
2007/01/31 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
jQuery中map函数的两种方式
2017/04/07 jQuery
react 国际化的实现代码示例
2018/09/14 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Python yield 使用方法浅析
2017/05/20 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
物业公司采购员岗位职责
2013/12/31 职场文书
尽职尽责村干部自我鉴定
2014/01/23 职场文书
《雾凇》教学反思
2014/02/17 职场文书
2015年教师节慰问信
2015/03/23 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书
Python3的进程和线程你了解吗
2022/03/16 Python
Django框架模板用法详解
2022/06/10 Python