vue3+ts 依賴注入provide inject的用法
更新時(shí)間:2023年11月26日 16:28:30 作者:你的美,讓我癡迷
vue3中引入新的組件傳值方式,就是provide/inject依賴注入模式,本文主要介紹了vue3+ts 依賴注入provide inject的用法,感興趣的可以了解一下
父級(jí):
<template>
<div>
<h1>App.vue (爺爺級(jí)別)</h1>
<label>
<input type="radio" v-model="colorVal" value="red" name="color" />
紅色
</label>
<label>
<input type="radio" v-model="colorVal" value="pink" name="color" />
粉色
</label>
<label>
<input type="radio" v-model="colorVal" value="yellow" name="color" />
黃色
</label>
<div class="box"></div>
<hr />
<provideAVue></provideAVue>
</div>
</template>
<script setup lang="ts">
import { ref, provide } from "vue";
import provideAVue from "./components/provideA.vue";
const colorVal = ref<string>("red");
provide("color", colorVal);
</script>
<style>
.box {
height: 50px;
width: 50px;
border: 1px solid #ccc;
background: v-bind(colorVal);
}
</style>
兒子級(jí)別:
<template lang="html">
<div>
<h1>provideA.vue(兒子級(jí)別)</h1>
<div class="box"></div>
<hr />
<provideBVue></provideBVue>
</div>
</template>
<script lang="ts" setup>
import { inject } from "vue";
import type { Ref } from "vue";
import provideBVue from "./provideB.vue";
const color = inject<Ref<string>>("color");
</script>
<style lang="scss">
.box {
width: 50px;
height: 50px;
border: 1px solid #ccc;
background: v-bind(color);
}
</style>
孫子級(jí):
<template lang="html">
<div>
<h1>provideA.vue(孫子級(jí)別)</h1>
<div>
<button @click="change">修改 provide的值 yellow</button>
</div>
<div class="box"></div>
<hr />
</div>
</template>
<script lang="ts" setup>
import { inject } from "vue";
import type { Ref } from "vue";
const color = inject<Ref<string>>("color");
const change = () => {
color!.value = "yellow";
};
</script>
<style lang="scss">
.box {
width: 50px;
height: 50px;
border: 1px solid #ccc;
background: v-bind(color);
}
</style>
效果圖

到此這篇關(guān)于vue3+ts 依賴注入provide inject的用法的文章就介紹到這了,更多相關(guān)vue3 ts 依賴注入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue 項(xiàng)目接口管理的實(shí)現(xiàn)
在vue開發(fā)中,會(huì)涉及到很多接口的處理,當(dāng)項(xiàng)目足夠大時(shí),就需要定義規(guī)范統(tǒng)一的接口,本文就來介紹一下vue 項(xiàng)目接口管理,具有一定的參考價(jià)值,感興趣的小伙伴可以一起來了解一下2019-01-01
使用vue進(jìn)行Lodop打印的一些常用方法小結(jié)
這篇文章主要給大家介紹了關(guān)于使用vue進(jìn)行Lodop打印的一些常用方法,需要進(jìn)行打印功能,Lodop就是實(shí)現(xiàn)需求的插件,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
vue style width a href動(dòng)態(tài)拼接問題的解決
這篇文章主要介紹了vue style width a href動(dòng)態(tài)拼接問題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
vue實(shí)現(xiàn)導(dǎo)出Word文件(數(shù)據(jù)流方式)
這篇文章主要介紹了vue實(shí)現(xiàn)導(dǎo)出Word文件(數(shù)據(jù)流方式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06

