vue3使用provider+ inject直接將參數由祖宗傳送給孫子

如題。在vue項目中,如果祖宗想將參數傳遞給孫子甚至更小一輩的組件,是一件麻煩事。可以通過爺爺-兒子-孫子-曾孫這樣的鏈條,一輩輩地傳承下去,但未免太繁瑣、太蠢了些;也可以通過store間接傳送,但如何觸發孫子們去獲取是個問題。

第三種方法是通過provider和inject方式。老祖宗provider,后代inject。在以下示例中,祖宗頁面將一個json對象傳給孫輩。其中,祖宗provider一個函數,函數返回一個json對象state。孫輩inject該函數,接收傳遞過來的state,并監聽里面的元素state.now。當state.now變化時,將重新獲取整個state,以達到老祖宗與孫輩持續刷新參數并傳遞的目的。

1、祖宗頁面

grandFather.vue

<template><div><input type="text" v-model="state.param1" /><input type="text" v-model="state.param2" /><input type="text" v-model="state.param3" /></div><div><input type="button" value="傳送參數" @click="sendParams" /></div>
</template><script setup>
import { reactive, provide, ref } from "vue";const state = reactive({param1:0,param2:0,	param3:0,	now: 0,
});const getParams = ref(() => {return state;
});
provide("sensorTjParams", getParams);function sendParams(){state.now = Date.now();//將當前時間賦給state.now,利于孫子監聽state.now,一旦變化,說明有新參數傳來。
}
</script>

2、孫子頁面

grandSon.vue

//getParams()可以獲取到爺爺的整個state變量。
const getParams = inject("sensorTjParams", ref({ now: 0 }));/** 特別注意爺爺傳過來的state.now()*/
const windVane = computed(() => {return getParams.value().now;
});watch(windVane, () => {//監聽state.now//有新參數到,干活吧。。。
});

3、小結

1)上例中,provide與inject的,是函數

2)孫輩通過computed,特別關注傳遞過來的json對象的其中一個元素now

3)監聽這個now

4)當祖宗想通知孫輩刷新參數時,只須改變這個now的值

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164908.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164908.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164908.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

9-什么是迭代器,生成器,裝飾器、django的信號用過嗎?如何用,干過什么、什么是深拷貝,什么是淺拷貝,如何使用、slice操作符和list構造函數

1 什么是迭代器&#xff0c;生成器&#xff0c;裝飾器 2 django的信號用過嗎&#xff1f;如何用&#xff0c;干過什么 3 什么是深拷貝&#xff0c;什么是淺拷貝&#xff0c;如何使用 3.1 淺拷貝 3.2 深拷貝 3.3 擴展(slice操作符和list構造函數) 1 什么是迭代器&#xff0c;生成…

14 redis全量復制與部分復制

1、設置主服務器的地址和端口 首先是在從服務器設置需要同步的主服務器信息&#xff0c;包括機器IP, 端口。 主從復制的開啟&#xff0c;完全是在從節點發起的。不需要我們在主節點做任何事情。 從節點開啟主從復制&#xff0c;有3種方式 配置文件&#xff1a;在從服務器的配…

【神印王座】龍皓晨美妝勝過月夜,魔神皇識破無視,撮合月夜阿寶

Hello,小伙伴們&#xff0c;我是拾荒君。 《神印王座》國漫第82集已更新&#xff0c;拾荒君和大多數人一樣&#xff0c;更新就去看了。魔神皇楓秀&#xff0c;威嚴凜然&#xff0c;突然空降月魔宮&#xff0c;整個宮殿都在這股無與倫比的強大氣息中顫栗。為了順利躲避魔神皇的…

稻谷飄香金融助力——建行江門市分行助力鄉村振興

7月的臺山&#xff0c;稻谷飄香。在大耕戶李勝業的農田里&#xff0c;金燦燦的稻谷翻起層層稻浪&#xff0c;收割機在稻浪里來回穿梭&#xff0c;割稻、脫粒、裝車等工序一氣呵成。空氣中彌漫著豐收的喜悅。 夏糧迎豐收的背后&#xff0c;是中國建設銀行江門市分行&#xff08…

遠端WWW服務支持TRACE請求

安全掃描的時候&#xff0c;掃出來的問題&#xff0c;這里不分享如何處理&#xff0c;就只分享下&#xff0c;如何找到有問題的端口。 通過命令 curl -v -X TRACE -I ip:port&#xff0c;這里的ip和端口就是掃描出有問題的服務器地址ip以及開放的服務端口。 觀察返回值&#x…

Python基礎:生成器(Generators)和生成器表達式(Generator Expressions)詳解

生成器&#xff08;Generators&#xff09;和 生成器表達式&#xff08;Generator Expressions&#xff09;是 Python 中用于處理迭代器和序列數據的強大工具。它們允許你按需生成值&#xff0c;而不是一次性生成所有值&#xff0c;從而節省內存和提高性能。 1. 生成器&#x…

深度強化學習筆記與無線通信應用案例

這里寫自定義目錄標題 參考資料比較和分類基礎知識16.3 有模型學習16.3.1 策略評估遞歸形式&#xff1a;Bellman 等式 16.3.2 策略改進16.3.3 策略迭代16.3.3 值迭代 16.4 免模型學習on-policy off-policy16.4.1 蒙特卡羅強化學習16.4.2 時序差分學習Sarsa算法&#xff1a;同策…

睡前隨筆記錄

一個人從出生到長大&#xff0c;就像一部手機從新用到舊。手機里面積累了太多的緩存&#xff0c;積累了太多的照片&#xff0c;各種app的數據&#xff0c;安裝了各式各樣的程序。 所以大概這就是年紀越大&#xff0c;記性越差的原因嗎&#xff1f;就像一個屋子&#xff0c;堆滿…

TableStructureRec: 表格結構識別推理庫來了

目錄 引言lineless_table_rec: 無線表格識別庫安裝使用結果 wired_table_rec&#xff1a;有線表格識別庫安裝使用結果 寫在最后 引言 TableStructureRec 倉庫是用來對文檔中表格做結構化識別的推理庫&#xff0c;包括來自 PaddleOCR 的表格結構識別算法模型、來自阿里讀光有線…

新版Testwell CTC++代碼覆蓋率測試工具帶來哪些新變化?

代碼覆蓋率測試工具Testwell CTC在版本10中引入了新的工具ctcreport來直接從符號和數據文件生成HTML報告。詳細的特性描述可以在測試井CTC幫助中找到。在本文檔中&#xff0c;描述了與前一代報告相比的改進和變化。 Adaptable Layout可調整布局 您可以選擇一個適合于項目結構的…

scanf的返回值

總所周知&#xff0c;scanf是C提供的庫函數的內容&#xff0c;而絕大多數定義的函數都會有一個返回值。 那么scanf的返回值是什么呢&#xff1f; 查了CPP的解釋后&#xff0c;返回值就是返回的是scanf讀取的數據的個數。 這個概念可能比較抽象。先看如下示例&#xff1a; 我們…

QT QJsonObject 插入 QByteArray十六進制數據

場景描述 有一組十六進制數使用QByteArray進行存儲&#xff1b;需要將其插入QJsonObject&#xff0c;然后通過網絡發送出去&#xff1b;接收到后&#xff0c;再轉換回QByteArray&#xff1b; 操作代碼 1. QByteArray轉換QString插入QJsonObject QString str ""; …

io500 壓測

目的 編譯環境 centos 7.9安裝包 yum groupinstall Development\ Tools yum install -y libevent-devel hwloc-devel libcephfs-devel.x86_64 編譯 open mpi 下載地址 https://www.open-mpi.org/software/ompi/v5.0/編譯 rpmbuild --rebuild openmpi-4.1.6-1.src.rpm安裝…

Leetcode 155. 最小棧

class MinStack {//用一個輔助棧存儲對應棧元素為棧頂時的最小值//當原棧插入一個元素時&#xff0c;輔助棧插入此值與當前輔助棧棧頂的值&#xff08;即插入前的最小值&#xff09;的較小值Stack<Integer> sta1;Stack<Integer> sta2;public MinStack() {sta1 new…

Redis(哨兵模式)

哨兵模式的定義&#xff1a; 是Redis的一種高可用解決方案&#xff0c;通過運行多個Redis實例來監控主從Redis實例的狀態&#xff0c;當主實例出現故障時&#xff0c;哨兵會自動選舉一個從實例作為新的主實例&#xff0c;從而保證系統的高可用性。哨兵模式可以監控多個主從Red…

2023亞太杯數學建模競賽C題詳細代碼解析建模

C題&#xff1a;The Development Trend of New Energy Electric Vehicles in China中國談新能源電動汽車的發展趨勢 第一問部分&#xff1a; import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.cluster import KMeans from sklearn.prep…

Axios 通過a標簽下載文件 跨域下載

<!-- a標簽占位 --><a ref"down" ></a>getTest() {this.$axios.request({url: https://cnv13.55.la/download?file_key3695fa9461a0ae59cf3148581e4fe339&handle_typeexcel2pdf,method: get,responseType: blob, // 切記類型 blob}).then(re…

RC4密碼(python實現)

def RC4_INIT(key):keylist(key)for i in range(len(key)):key[i]ord(key[i]) #需要將key中的每個字符轉換為整數進行異或k[0 for i in range(256)]s[0 for i in range(256)]j0lengthlen(key)for i in range(256):s[i]ik[i]key[i%length] #如果key為123&#xff0c;則實際填充…

實現二叉搜索樹的查找、插入和刪除功能(思路+圖文+代碼詳解)

文章目錄 二叉搜索樹一、搜索樹1.二叉搜索樹的查找2.二叉搜索樹的插入3.二叉搜索樹的刪除4.性能分析 二叉搜索樹 HashMap和HashSet的底層是一個哈希表 TreeMap 和TreeSet底層是一棵搜索樹&#xff08;紅黑樹&#xff09; 涉及到一些搜索查找的場景可以調用Map和Set接口 一、…

Action!錄屏工具免費完整版,錄屏軟件,打開即可解鎖最新完整可用版本,支持GPU加速HDR視頻錄制和播放

一、軟件簡介 本次帶來的錄屏工具已升級為【完整版本】&#xff0c;所有功能全部可用。該錄屏工具支持GPU硬件加速&#xff0c;可以智能識別主流硬件設備&#xff0c;支持通過GPU進行HDR視頻錄制和播放進行。視頻錄制幀率最高支持360FPS&#xff0c;直播視頻幀率最高支持60FPS…