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获取当前日期时间及其它日期操作汇总
Mar 08 Javascript
vue.js实现表格合并示例代码
Nov 30 Javascript
socket.io学习教程之基本应用(二)
Apr 29 Javascript
JS实现的随机排序功能算法示例
Jun 09 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
Dec 20 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
Feb 09 Javascript
vue的mixins属性详解
Mar 14 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
Apr 08 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
Sep 04 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
Nov 11 Javascript
解决vue打包 npm run build-test突然不动了的问题
Nov 13 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调用MySQL的存储过程的实现代码
2008/08/12 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
JavaScript 继承详解(三)
2009/07/13 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
vue.js指令和组件详细介绍及实例
2017/04/06 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
python查找指定具有相同内容文件的方法
2015/06/28 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
Python中偏函数用法示例
2018/06/07 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
python各层级目录下import方法代码实例
2020/01/20 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
Internet体系结构
2014/12/21 面试题
《梅兰芳学艺》教学反思
2014/02/24 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
2014年四风问题个人对照自查剖析材料
2014/09/15 职场文书
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS