vue中的provide/inject的学习使用


Posted in Javascript onMay 09, 2018

前言

最近在看element-ui的源码,发现了一个这样的属性:inject.遂查看官网provider/inject

provider/inject:简单的来说就是在父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量。

需要注意的是这里不论子组件有多深,只要调用了inject那么就可以注入provider中的数据。而不是局限于只能从当前父组件的prop属性来获取数据。

下面我们来验证下猜想:

first:定义一个parent component

<template>
 <div>
<childOne></childOne>
 </div>
</template>

<script>
 import childOne from '../components/test/ChildOne'
 export default {
  name: "Parent",
  provide: {
   for: "demo"
  },
  components:{
   childOne
  }
 }

在这里我们在父组件中provide for这个变量。

second 定义一个子组件

<template>
 <div>
  {{demo}}
  <childtwo></childtwo>
 </div>
</template>

<script>
 import childtwo from './ChildTwo'
 export default {
  name: "childOne",
  inject: ['for'],
  data() {
   return {
    demo: this.for
   }
  },
  components: {
   childtwo
  }
 }
</script>

third 定义另一个子组件

<template>
 <div>
  {{demo}}
 </div>
</template>

<script>
 export default {
  name: "",
  inject: ['for'],
  data() {
   return {
    demo: this.for
   }
  }
 }
</script>

在2个子组件中我们使用jnject注入了provide提供的变量for,并将它提供给了data属性。

这里官网注明例子只工作在 Vue 2.2.1 或更高版本。低于这个版本时,注入的值会在 props 和 data 初始化之后得到。

运行之后看下结果

vue中的provide/inject的学习使用

从上面这个例子可以看出,只要在父组件中调用了,那么在这个父组件生效的生命周期内,所有的子组件都可以调用inject来注入父组件中的值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js实现键盘方向键翻页功能的代码
Jun 03 Javascript
javascript 触发事件列表 比较不错
Sep 03 Javascript
jquery图片上下tab切换效果
Mar 18 Javascript
基于jQuery的前端数据通用验证库
Aug 08 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
Mar 04 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
Aug 05 Javascript
安装vue-cli的简易过程
May 22 Javascript
Typescript的三种运行方式(小结)
Sep 18 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
Feb 06 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
Jan 29 Javascript
详解Vue 多级组件透传新方法provide/inject
May 09 #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
You might like
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
js获取单选按钮的数据
2006/11/27 Javascript
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
nodejs实现日志读取、日志查找及日志刷新的方法分析
2019/05/20 NodeJs
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
外贸业务员求职自荐信分享
2013/09/21 职场文书
经理秘书岗位职责
2013/11/14 职场文书
经济担保书范文
2014/04/02 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
优秀班主任材料
2014/12/16 职场文书
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers