详解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 13 Javascript
js获取select默认选中的Option并不是当前选中值
May 07 Javascript
js实现的点击数量加一可操作数据库
May 09 Javascript
JavaScript使用Range调色及透明度实例
Sep 25 Javascript
手机软键盘弹出时影响布局的解决方法
Dec 15 Javascript
详解vue 中使用 AJAX获取数据的方法
Jan 18 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
May 13 jQuery
详解用node编写自己的cli工具
May 23 Javascript
Ionic3 UI组件之autocomplete详解
Jun 08 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
原生js实现公告滚动效果
Jan 10 Javascript
Vue+tracking.js 实现前端人脸检测功能
Apr 16 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
用cookies来跟踪识别用户
2006/10/09 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
如何利用PHP执行.SQL文件
2013/07/05 PHP
php自定义apk安装包实例
2014/10/20 PHP
php 类自动载入的方法
2015/06/03 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
jquery 锁定弹出层实现代码
2010/02/23 Javascript
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
基于jQuery的图片剪切插件
2011/08/03 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
详解JS函数重载
2014/12/04 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
Python下singleton模式的实现方法
2014/07/16 Python
Python中的面向对象编程详解(下)
2015/04/13 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
Tensorflow实现在训练好的模型上进行测试
2020/01/20 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
python 元组和列表的区别
2020/12/30 Python
Python实现一个论文下载器的过程
2021/01/18 Python
电信专业毕业生推荐信
2013/11/18 职场文书
现金会计岗位职责
2013/12/05 职场文书
水果超市创业计划书
2014/01/27 职场文书
医院护士见习期自我鉴定
2014/04/10 职场文书
部门活动策划方案
2014/08/16 职场文书
学校推普周活动总结
2015/05/07 职场文书
庆七一晚会主持词
2015/06/30 职场文书
担保书范文
2019/07/09 职场文书
假期读书倡议书3篇
2019/08/19 职场文书