当前位置: 首页 > Web前端 > vue.js

vue中provide和inject

时间:2023-04-01 00:19:33 vue.js

.kangxi{width:200px;height:140px;text-align:center;background-color:#ffb599;}看了element-ui源码,发现在subgroup的设计中使用了inject属性,然后查看官方文档,了解到vue在2.2版本中添加了provide/inject.0:provide和inject主要用于开发高级插件/组件库。不建议在普通应用程序代码中使用。Vue.js官方文档根据文档的描述,我的理解是:在一个多级嵌套的组件系统中,某一层外层组件可以通过provide属性为其任意一层的子组件提供依赖,不管怎样许多层次有深;而某一层级的子组件可以通过inject属性(以this.xxx的形式获取)从它上面的任何层级的父组件接收依赖。注意:provide和inject需要配合使用。举个例子来说明:清朝的三位皇帝:康熙(玄烨)、雍正(胤禛)、乾隆(弘历)是祖孙三代。我们用vue组件的思想来表达它们之间的关系,模拟一段对话来理解vue中的provide和inject。Callingcomponents——GreatQingEmpire:qing-dynasty.vueDefinitionofgrandpacomponents——EmperorKangxi:kangxi.vue.kangxi{width:200px;height:140px;text-align:center;background-color:#ffb599;}Definethesoncomponent—EmperorYongzheng:yongzheng.vue.yongzheng{width:160px;高度:100px;保证金:0自动;文本对齐:居中;背景色:#84b5ff;}//printresult康熙皇帝对雍正皇帝说:“你是我的儿子”雍正皇帝回答:“是的,爸爸”定义孙子组件——乾隆:qianlong.vue.qianlong{width:120px;height:60px;margin:0auto;text-align:center;background-color:blanchedalmond;}//打印结果康熙皇帝对乾隆皇帝说:“你是我的孙子”乾隆皇帝回答:“是的,爷爷”雍正皇帝对乾隆皇帝说:“你是我的儿子”乾隆皇帝回答:“是的,爸爸”