详解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 相关文章推荐
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
May 04 Javascript
Jquery命名冲突解决的五种方案分享
Mar 16 Javascript
P3P Header解决Cookie跨域的问题
Mar 12 Javascript
图片Slider 带左右按钮的js示例
Aug 30 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
Dec 18 Javascript
JQuery实现table行折叠效果以JSON做数据源
May 26 Javascript
三种取消选中单选框radio的方法
Sep 09 Javascript
jquery自定义表格样式
Nov 23 Javascript
给before和after伪元素设置js效果的方法
Dec 04 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
Apr 18 Javascript
vue实现全屏滚动效果(非fullpage.js)
Mar 07 Javascript
Vue路由切换页面不更新问题解决方案
Jul 10 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
如何将数据从文本导入到mysql
2006/10/09 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
JS:window.onload的使用介绍
2013/11/13 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
Python编程入门的一些基本知识
2015/05/13 Python
python中常用的九种预处理方法分享
2016/09/11 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
python读写csv文件的方法
2019/08/13 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
团队精神口号
2014/06/06 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
服务承诺书
2015/01/19 职场文书
讲文明倡议书
2015/04/29 职场文书