web學習筆記(六十二)

目錄

1.鍵盤事件

2.KeepAlive

3.組件傳值

3.1 兄弟組件傳值

3.2 組件樹傳值

3.3 發布訂閱者傳值


1.鍵盤事件

keydown表示鍵盤事件,在不加修飾符的情況下,點擊鍵盤上的任意位置都可以觸發鍵盤事件,

<template><div><!-- --><input type="text" @keydown="keyboard" /></div>
</template><script setup>
const keyboard = () => {console.log("觸發鍵盤事件");
};
</script>

? ? ? ?但是通常我們需要點擊指定鍵然后觸發相應的事件,此時就需要用到鍵盤的修飾符了,? 也可以鏈式調用修飾符,表示同時按下對應的鍵觸發鍵盤事件。以下是常用按鍵修飾符匯總:

? .enter:

點擊enter鍵觸發事件
.tab:點擊tab鍵觸發事件
?.delete:點擊delete鍵觸發事件
.esc:點擊esc鍵觸發事件
.space:點擊空格鍵觸發事件
.up:點擊向上方向鍵觸發事件
.down:點擊向下方向鍵觸發事件
.left:點擊向左方向鍵觸發事件
.right:點擊向右方向鍵觸發事件
.ctrl:?點擊ctrl鍵觸發事件
.alt:?點擊alt鍵觸發事件?
?.shift:

?點擊shift鍵觸發事件

?.meta:?點擊win鍵觸發事件

2.KeepAlive

<KeepAlive>?是一個內置組件,它的功能是在多個組件間動態切換時緩存被移除的組件實例。從而減少dom的操作。

  • KeepAlive希望內部只包含一個組件,當我們需要兩個組件頻繁切換,但又不希望dom頻繁操作而使用KeepAlive時,內部的兩個組件成立的條件不可以都寫為v-if或v-show,會產生報錯。可以寫為V-if和v-else,此時KeepAlive會認為無論如何我內部都是只包含一個組件的,此時就不會產生報錯
<template><div><button @click="setType('登錄')">登錄</button><button @click="setType('注冊')">注冊</button><KeepAlive><comone v-if="type === '注冊'"></comone><comtwo v-else></comtwo></KeepAlive><!--此處不可以用兩個v-if或兩個v-show來判斷,都會報錯  --></div>
</template><script setup>
import comone from '@/components/comone.vue'
import comtwo from '@/components/comtwo.vue'
import { ref } from 'vue'
const type = ref('登錄')
const setType = (v) => {type.value = v
}
</script>
  • ?KeepAlive還可以實現頁面組件的緩存,需要將KeepAlive組件加載在app.vue文件中,此時KeepAlive的作用是緩存所有的頁面組件,此時任何應用頁面的小時,對應的組件都不會被銷毀。
    <RouterView v-slot="{ Component }"><!-- 這種寫法意味著所有的頁面組件都被緩存了,任何應該頁面的消失,都不會被銷毀。 --><KeepAlive><template v-if="Component"><Suspense><!-- 主要內容 --><component :is="Component"></component><!-- 加載中狀態 --><template #fallback> 正在加載... </template></Suspense></template></KeepAlive></RouterView>

3.組件傳值

3.1 兄弟組件傳值

本質就是其中一個子組件將數據傳遞給父組件,由父組件再傳給另一個子組件,本質上還是子傳父(復習筆記六十一有詳細介紹)

3.2 組件樹傳值

組件樹傳值也叫依賴注入,可用解決父組件向某個深層子組件傳值的問題,但是一定要注意,這個只能實現父傳子的單向傳遞。

(1)在父組件導入provide?,并且用provide?函數來將需要傳給子組件的值注入進去。

import { ref, provide } from 'vue'
const val = ref(0)
provide('number', val)//參數一:注入名(需要和子頁面中一致),參數二:需要傳遞的值,可以是任意類型,也可以是一個響應式數據

(2)在子組件導入?inject?,然后將父組件傳過來的值接收一下。

import {inject } from 'vue'
const number = inject('number')//需要和父組件的注入名保持一致

3.3 發布訂閱者傳值

所有的傳值方式都可以用發布訂閱者模式來實現。

(1)在集成終端輸入: npm i --save pubsub-js來安裝pubsub-js包,這是一個專門用來完成發布訂閱操作的包,這個包是通用的,Vue、小程序、react、js都可以用

(2)在需要接收數據的組件中將包導入進來?,然后完成訂閱的操作

import PubSub from 'pubsub-js' //導入關注訂閱的包
PubSub.subscribe('getcount', (msgName, data) => {console.log(msgName, data)
}) //參數一:關注的消息名,參數二:回調函數,而回調函數的參數一又是關注的消息名,參數二是收到的數據

(3)在需要發布數據的組件將包導入,然后完成訂閱操作

import PubSub from 'pubsub-js' //導入關注訂閱的包
PubSub.publish('getcount', count.value) //參數一:消息名,參數二:發布的值

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

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

相關文章

word 無法自動檢測拼寫

word 有時候不能分辨是哪種語言,比如把英語錯認為法語 。 例如&#xff1a;Interlaayer spacace,發現誤認為是法語。 1、選中Interlaayer spacace 2、點擊語言下拉按鈕 選擇設置校對語言 發現校對語言為法語 3、手動修改校對語言為英語&#xff0c;并點擊確認。 4、發現現…

什么是 Batch Normalization 批標準化和全連接層

Batch Normalization 神經元在經過激活函數之后會處于飽和狀態&#xff0c;無論后續怎么變化都不會再起作用。 每一層都會進行batch normalization的處理&#xff01; without normalization 會導致數據分布再飽和區 全連接層&#xff1a; 全連接層(fully connected layers&a…

十四、返回Insert操作自增索引值

分為兩部分&#xff0c;解析初始化和使用 拿含有selectkey標簽的insert語句解析來說 解析部分 1.解析時看有沒有selectkey標簽&#xff0c;有的話先解析selectkey的內容&#xff0c;包括對其SQL的解析并封裝成一個MappedStatement和創建KeyGenerator放入configuration中 2.解…

SpringBoot集成ClickHouse,含集成kerberos認證

需求&#xff1a;項目中要使用ClickHouse做數據庫。 具體實現&#xff1a; 1&#xff0c;在pom.xml中添加clickhouse依賴 <!-- https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc --> <dependency><groupId>com.clickhouse</groupId&g…

SpringBoot前端URL訪問本地磁盤文件

SpringBoot前端通過 URL訪問本地磁盤文件&#xff0c;其實就是 SpringBoot訪問web中的靜態資源的處理方式。 SpringBoot 訪問web中的靜態資源&#xff1a;https://blog.csdn.net/qq_42402854/article/details/90295079 首先&#xff0c;我們知道瀏覽器訪問本地磁盤文件的方式為…

LLM的基礎模型5:Embedding模型

大模型技術論文不斷&#xff0c;每個月總會新增上千篇。本專欄精選論文重點解讀&#xff0c;主題還是圍繞著行業實踐和工程量產。若在某個環節出現卡點&#xff0c;可以回到大模型必備腔調或者LLM背后的基礎模型新閱讀。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;則提…

面試高頻問題----4

一、redis和mysql一致性怎么保證&#xff1f; 1.編寫刪除緩存的接口&#xff0c;在更新數據庫的同時&#xff0c;調用刪除緩存的接口刪除緩存中的數據。 2.消息隊列&#xff1a;ActiveMQ、消息通知&#xff1b;將更新操作發送到消息隊列中&#xff0c;順序更新mysql和redis。…

三十七、openlayers官網示例Earthquakes Heatmap解析——在地圖上加載熱力圖

官網demo地址&#xff1a; Earthquakes Heatmap 這篇主要介紹了熱力圖HeatmapLayer HeatmapLayer 是一個用于在地圖上顯示熱力圖的圖層類型&#xff0c;通常用于表示地理數據中的密度或強度。例如&#xff0c;它可以用來顯示地震、人口密度或其他空間數據的熱點區域。在這個示…

Siemens-NXUG二次開發-創建倒斜角特征、邊倒圓角特征、設置對象顏色、獲取面信息[Python UF][20240605]

Siemens-NXUG二次開發-創建倒斜角特征、邊倒圓角特征、設置對象顏色、獲取面信息[Python UF][20240605] 1.python uf函數1.1 NXOpen.UF.Modeling.AskFaceData1.2 NXOpen.UF.Modeling.CreateChamfer1.3 NXOpen.UF.ModlFeatures.CreateBlend1.4 NXOpen.UF.Obj.SetColor 2.實體目標…

lib庫和dll庫的介紹和使用

lib&#xff08;靜態庫&#xff09; 靜態庫定義&#xff1a;.lib文件是靜態庫文件&#xff0c;包含了在編譯時被鏈接到目標程序的代碼。使用靜態庫時&#xff0c;庫的代碼會被復制到最終生成的可執行文件中。優點&#xff1a; 性能&#xff1a;由于庫代碼在編譯時就被集成到可…

分布式架構與分布式理論

文章目錄 分布式架構什么是分布式系統分布式系統特性分布式系統面臨的問題 分布式理論數據一致性CAP理論BASE理論 分布式架構 什么是分布式系統 分布式系統是一個硬件或軟件組件分布在不同的網絡計算機上&#xff0c;彼此之間僅僅通過消息傳遞進行通信和協調的系統。 所謂分…

Vue的APP實現下載文件功能,并將文件保存到手機中

Vue的APP實現下載文件功能&#xff0c;并將文件保存到手機中 文字說明后臺核心代碼前臺核心代碼運行截圖項目鏈接 文字說明 本文介紹Vue實現的APP&#xff0c;將文件下載并保存到手機中&#xff0c;為系統提供導出功能&#xff1b;同時支持導入&#xff0c;即選擇本地的文件后&…

Ubuntu18.04 文件管理器無法打開的解決方法

問題&#xff1a;打開Ubuntu虛擬機發現文件管理器無法打開,一直在轉圈圈 在終端中輸入 nautilus 顯示如下信息 nautilus: symbol lookup error: /usr/lib/x86_64-linux-gnu/tracker-2.0/libtracker-data.so.0: undefined symbol: sqlite3_bind_pointer 解決措施&#xff1a…

LabVIEW 反向工程的實現與法律地位

什么是LabVIEW反向工程&#xff1f; 反向工程是指從現有的應用程序或軟件中推導出其設計、架構、代碼等信息的過程。對于LabVIEW而言&#xff0c;反向工程涉及從現有的VI&#xff08;虛擬儀器&#xff09;文件、項目或應用程序中提取出設計思路、功能模塊、算法實現等。 LabV…

Spring Boot整合Jasypt 庫實現配置文件和數據庫字段敏感數據的加解密

&#x1f604; 19年之后由于某些原因斷更了三年&#xff0c;23年重新揚帆起航&#xff0c;推出更多優質博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有堅忍不拔之志 &#x1f390; 個人CSND主頁——Mi…

代碼隨想錄第二十九天打卡| 491.遞增子序列,46.全排列,47.全排列 II

491.遞增子序列 本題和大家剛做過的 90.子集II 非常像&#xff0c;但又很不一樣&#xff0c;很容易掉坑里。 代碼隨想錄 視頻講解&#xff1a;回溯算法精講&#xff0c;樹層去重與樹枝去重 | LeetCode&#xff1a;491.遞增子序列_嗶哩嗶哩_bilibili class Solution { public:…

好用軟件推薦

軟件功能相關介紹地址FastStone截圖&#xff08;長截圖、定時截圖等&#xff09;CSDNhttps://www.faststone.org/FSCaptureDownload.htmQuicker快捷訪問https://getquicker.net/https://getquicker.net/

大數據學習問題記錄

問題記錄 node1突然無法連接finalshell node1突然無法連接finalshell 今天我打開虛擬機和finalshell的時候&#xff0c;發現我的node1連接不上finalshell,但是node2、node3依舊可以鏈接&#xff0c;我在網上找了很多方法&#xff0c;但是是關于全部虛擬機連接不上finalshell&a…

統一返回響應

前言 我們為什么要設置統一返回響應 提高代碼的可維護性&#xff1a;通過統一返回請求的格式&#xff0c;可以使代碼更加清晰和易于維護&#xff0c;減少重復的代碼&#xff0c;提高代碼質量。 便于調試和測試&#xff1a;統一的返回格式使得在調試和測試時更為簡單&#xff…

大模型時代,是 Infra 的春天還是冬天?

Highlights 大模型時代元年感悟 Scaling Laws 是大模型時代的摩爾定律,是最值得研究的方向 LLM 發展的三個階段: 算法瓶頸 -> 數據瓶頸 -> Infra 瓶頸 為什么 GPT 一枝獨秀, BERT、T5 日落西山? 大模型時代,是大部分 Infra 人的冬天,少部分 Infra 人的春天(算法研…