IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue依赖注入简述 -> 正文阅读

[JavaScript知识库]vue依赖注入简述

?简单记录下这个可以给后代组件传递参数的方法,主要是简单方便

官方文档点这里,提到了依赖注入这个方法的作用、优势和缺点有兴趣的可以自行研究,本文不赘述,只简单介绍、实现功能

创建项目

首先建个vue项目,为了方便展示直接在home页编写代码,分别写创建子、孙、曾孙三代组件并注册

目的是在初始组件里提供一个参数和一个方法,在不使用vuex和props的情况下传递到曾孙级组件使用

home页代码

通过provide提供要注入后代组件的内容,就像编写data数据一样,注意要写return

这里就是传递了home数据和clog方法,

后代组件在接受注入时,home即为home组件实例,可以在后代组件里控制台打印home验证,

clog方法在接受注入后可以直接使用

<template>
  <div class="home">
    <son></son>
  </div>
</template>

<script>A
import son from '../components/son.vue'
export default {
  name: 'Home',
  data() {
  	return{
		text:"这是初始组件的data数据文本"
	}
  },
  components: {
   son
  },
//这里
  provide(){
	return{
		home:this,
		clog(){
			console.log('这是初始组件方法运行结果');
		}
	}
  }
}
</script>

子组件代码

<template>
	<div class="son">
		<h2>子组件</h2>
		<grandson></grandson>
	</div>
</template>

<script>
	import grandson from './grandson.vue'
	export default {
		components:{
			grandson
		}
	}
</script>

<style scoped="scoped">
	.son{
		border: 1px solid black;
	}
</style>

孙组件代码

<template>
	<div class="grandson">
		<h3>孙组件</h3>
		<greatgrandson></greatgrandson>
	</div>
</template>

<script>
	import greatgrandson from './greatgrandson.vue'
	export default {
		components:{
			greatgrandson
		}
	}
</script>

<style scoped="scoped">
	.grandson{
		border: 1px solid dimgray;
	}
</style>

曾孙组件代码

<template>
	<div class="greatgrandson">
		<h4>曾孙组件</h4>
		<button @click="test">button</button>
	</div>
</template>

<script>
	export default {
		inject:['home','clog'],
		methods:{
			test(){
				console.log(this.home.text);
				this.clog()
			}
		}
	}
</script>

<style scoped="scoped">
	.greatgrandson{
		border: 1px solid darkgray;
	}
</style>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:22:02  更:2021-08-31 15:22:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:03:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码