国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3基礎(chǔ)(五)watch(淺監(jiān)聽及深度監(jiān)聽),鼠標(biāo)及鍵盤修飾符,v-model,對象寫法,class使用數(shù)組,字符串模版,自定義組件標(biāo)簽上添加事件無效,使用data時用別名替代,solt輸出內(nèi)容

這篇具有很好參考價值的文章主要介紹了vue3基礎(chǔ)(五)watch(淺監(jiān)聽及深度監(jiān)聽),鼠標(biāo)及鍵盤修飾符,v-model,對象寫法,class使用數(shù)組,字符串模版,自定義組件標(biāo)簽上添加事件無效,使用data時用別名替代,solt輸出內(nèi)容。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

監(jiān)聽器(watch)

監(jiān)聽中的 方法名需要監(jiān)聽的 變量名一致
如果沒有(例如aa),不會報錯,但監(jiān)聽不到
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
所以上圖會輸出1,而不會輸出2

newValue改變后的值,oldValue改變前的值

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
watch可以監(jiān)聽computed計算屬性中的方法,變量等等
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
點擊go按鈕,調(diào)用change方法修改kk的值,computed中有kk,所以kk改變,computed執(zhí)行(computed看的是方法里的變量),返回kk的值,watch(看的是方法名,watch的方法名要與監(jiān)聽的變量名一致)監(jiān)聽到computedleo執(zhí)行,輸出leo
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

監(jiān)聽拓展

普通監(jiān)聽(淺監(jiān)聽),只能監(jiān)聽的到整個數(shù)組被替換(重新賦值,原來的銷毀,變成新的)監(jiān)聽不到 數(shù)組內(nèi)部發(fā)生改變(push,pop等)
可以監(jiān)聽:
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
不能監(jiān)聽:
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
解決方案:
深度監(jiān)聽,被監(jiān)聽的方法中添加handler
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
不只要加handler還需要加deep:true
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

immediate (中文立即的意思)立即執(zhí)行
加上immediate:true,會初始化時就會自動執(zhí)行一次
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
總結(jié):
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

事件處理

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
$event寫法是固定的指的是當(dāng)前的事件,上圖中指的是MouseEvent

獲取這個事件對象 可以做很多事,比如拖拽等等

&event是作為參數(shù)傳入的固定寫法,想在第幾個傳入,第幾個就寫$event

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
總結(jié):
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

事件 修飾符

阻止事件默認行為(.prevent):
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
@mousedown.prevent
后面不要加“事件名”,就是不要加=‘a(chǎn)bc’,直接寫@mousedown.prevent就行
加了事件 阻止不了那個事件
例如:
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
點擊字符串,一樣會執(zhí)行abc事件中的alert(1),彈出1

事件冒泡

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
這么寫會冒泡,點blue會從blue的彈窗一直彈到leo的
點sky會從sky彈到leo

.cupture誰先捕獲到先執(zhí)行哪個

所以點擊blue,會先彈出leo,然后sky,最后是blue,冒泡效果還是會有,只不過執(zhí)行順序會相反

.passive不能和.prevent一起使用,會報錯

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

@scroll后使用.passive會在移動端的效率會更高(以前或者比較差的手機或者瀏覽器),會過濾掉一些移動端沒有用的多余的行為

@scoll.passive是vue對滾動的優(yōu)化方案,設(shè)置為true時,表示 listener 永遠不會調(diào)用 preventDefault()

如果事件冒泡,加上.once 還是會冒泡,只不過只會執(zhí)行一次,再次點擊無效

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

阻止事件冒泡(.self):

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

或者.stop

總結(jié):
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

按鍵別名

.tab .enter等
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
鍵盤事件(必須是鍵盤事件) 之后直接用

總結(jié):
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

系統(tǒng)修飾鍵

ctrl,alt,shift,meta
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
meta在windows上是系統(tǒng)鍵,在蘋果電腦上是commond鍵

如果使用.crtl,按鍵中包含ctrl也能執(zhí)行,比如同時按shift和ctrl

那怎么只按crtl 才執(zhí)行,按多個不執(zhí)行:
.exact
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

上圖的寫法就是,只按ctrl鍵執(zhí)行abc方法

先按住ctrl在按住shift也不執(zhí)行

這種寫法只針對系統(tǒng)修飾鍵,比如按esc和ctrl一樣會執(zhí)行

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

鼠標(biāo)事件修飾符

left,right,middle
left只能用在鼠標(biāo)左鍵的事件上
如果left用在鼠標(biāo)右鍵的事件上會不執(zhí)行
所以right只能用在右鍵的事件上

例子:
@contextmenu.left
點擊左鍵不執(zhí)行
因為contentmenu是鼠標(biāo)右鍵的事件
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

例子2
@click.right不會執(zhí)行
因為click是鼠標(biāo)左鍵的事件

例子3:
鼠標(biāo)修飾符只能一個使用,不能一起使用不執(zhí)行
不能.left.right這種寫法

mousedown這類事件不用區(qū)分left和right,都能使用
contextmenu指的是右鍵菜單

總結(jié):
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

表單輸入綁定,雙向綁定(v-modle)

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

雙向綁定修飾符

.lazy
input上的v-modle后面用.lazy會把oninput事件降級on change事件

.number
inputv-modle后用.number,輸入框里輸入非數(shù)字的字符串,現(xiàn)實的時候會被自動過濾掉

可連用
可以.number.lazy連用

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

.trim刪除前后空格

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

class與style綁定,對象語法

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
這種寫法比{{變量}}要方便一些,否則還得在data中給變量再設(shè)一個值

class疊加的順序,先寫的在前面(寫在前面的排在前面)
后寫的aaa所以在網(wǎng)頁中aaa也排在后面
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

對象寫法是個json格式,可以寫多個class
class的個數(shù)不限
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

正常的json格式key是要加雙引號“”
如果要寫的規(guī)范一點可以加上
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
要書寫規(guī)范的話,上圖中的mmm和k也要和setRed一樣加上“”
active的值為字符串,默認為true
active的值設(shè)為0,會默認為false
active的值設(shè)為空字符串“”,會默認為false

:class和:style

:class=‘變量名’
:style=‘變量名’

:style=‘對象’,也一樣會轉(zhuǎn)換成style的字符串格式執(zhí)行
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

class與style綁定—數(shù)組語法

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
上方寫法就是兩個(多個)class的數(shù)組寫法

數(shù)組中放入三元運算符:
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

class 數(shù)組里嵌套數(shù)組
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
結(jié)果:(class會把數(shù)組自動扁平化
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

字符串模版

換行\n

字符串模版中插入變量或者json對象中的某個屬性
使用${}
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
a和b如果都是數(shù)字 所以用運算符拼接會自動計算
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

組件基礎(chǔ)

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

從上圖可以看出 調(diào)用的三個組件都是單獨的(每個count顯示的都不一樣,每個調(diào)用的組件里都有一個data,data里都有一個count

配合計算屬性一起使用
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

leo-aaa在執(zhí)行的時候,會自動轉(zhuǎn)化為<div>等html代碼,所以直接在leo-aaa標(biāo)簽上添加點擊事件等事件是無效的

props

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
msg in data,意思是在使用data的時候把data的名字改為msg,所以循環(huán)的時候msg.id其實是data中data數(shù)組中每個對象的id

在組件leo-aaa中接收,寫為.component(“l(fā)eo-aaa”,{props:

然后props接收

最后.mount掛載在#leo
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
總結(jié):
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他

slot等同于:

vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他
上下兩張圖中的代碼其實是一樣的,上圖的slot標(biāo)簽等于會再加載一遍html里leo-aaa里的代碼,而下圖里則是直接寫進組件里了

注意:
每寫一個slot標(biāo)簽都會把組件leo-aaa中的內(nèi)容輸出一遍

總結(jié):
vue3 深度監(jiān)聽,前端,基礎(chǔ),h5,前端,vue.js,移動端,經(jīng)驗分享,其他文章來源地址http://www.zghlxwxcb.cn/news/detail-606723.html

到了這里,關(guān)于vue3基礎(chǔ)(五)watch(淺監(jiān)聽及深度監(jiān)聽),鼠標(biāo)及鍵盤修飾符,v-model,對象寫法,class使用數(shù)組,字符串模版,自定義組件標(biāo)簽上添加事件無效,使用data時用別名替代,solt輸出內(nèi)容的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Vue3 watch 監(jiān)聽對象數(shù)組中對象的特定屬性

    在 Vue 3 中,可以使用 watch 函數(shù)來監(jiān)聽對象數(shù)組中對象的特定屬性。可以通過在回調(diào)函數(shù)中遍歷數(shù)組來檢查對象的特定屬性是否發(fā)生變化,并在變化發(fā)生時執(zhí)行相應(yīng)的操作。 例如,假設(shè)有一個名為 items 的對象數(shù)組,其中每個對象都有一個名為 checked 的布爾屬性和一個名為 n

    2023年04月20日
    瀏覽(22)
  • vue全家桶進階之路32:Vue3 WatchEffect和watch 監(jiān)聽

    在 Vue 3 中, watchEffect 是一個用于監(jiān)聽響應(yīng)式數(shù)據(jù)變化的 API。它可以在函數(shù)內(nèi)部自動跟蹤數(shù)據(jù)的依賴,并在依賴變化時重新運行函數(shù)。 watchEffect ?的作用以及各個參數(shù)的功能講解: watchEffect(effect: (onInvalidate: InvalidateCbRegistrator) = void | (() = void) | Promisevoid, options?: WatchEffectOptio

    2023年04月17日
    瀏覽(23)
  • Vue3.0 watch和watchEffect監(jiān)聽器:VCA

    在項目中,有時候檢測一個變量的值是否反升了變化。通常使用的watch或者使用低效的循環(huán)判斷。 在次vue中給我們設(shè)置了深度監(jiān)測數(shù)據(jù)繁盛變化的方法。 1.vue中提供了在watch監(jiān)聽時設(shè)置deep:true 就可以實現(xiàn)對對象的深度監(jiān)聽; 2.immediate:true,代表watch里面聲明了之后會立馬執(zhí)行han

    2024年02月06日
    瀏覽(30)
  • vue監(jiān)聽鼠標(biāo)與鍵盤事件

    vue監(jiān)聽鼠標(biāo)與鍵盤事件

    ?效果: ?

    2024年02月16日
    瀏覽(31)
  • watch監(jiān)聽,解決Vue3父組件異步props傳值,子組件接收不到的問題

    watch監(jiān)聽,解決Vue3父組件異步props傳值,子組件接收不到的問題

    寫靜態(tài)數(shù)據(jù)的時候父組件傳值子組件接收并渲染是沒問題的,但當(dāng)父組件異步獲取數(shù)據(jù),子組件接收數(shù)據(jù)會晚于渲染,就會產(chǎn)生接收不到的問題,我在用echarts繪制圖表時圖表就直接不顯示 ?用watch監(jiān)聽props數(shù)據(jù)并在watch內(nèi)進行賦值操作可解決該問題 直接上代碼 父組件,vue3語法

    2024年02月15日
    瀏覽(36)
  • vue中使用watch監(jiān)聽同時監(jiān)聽兩個數(shù)據(jù)

    使用場景,創(chuàng)建一個子組件,父組件會向子組件中穿遞一個狀態(tài) - \\\"status\\\" ,子組件需要同時監(jiān)聽this.$route.params中的值和status,然后再去調(diào)方法,所以需要同時監(jiān)聽

    2024年02月11日
    瀏覽(28)
  • vue watch監(jiān)聽多個數(shù)據(jù)

    項目驅(qū)動 在自己工作的某個項目中,之前基本都是使用watch監(jiān)聽單個數(shù)據(jù)。 但是后面在一個echarts的項目中,使用了三個echarts圖表,而三個圖表需要根據(jù)用戶的選擇條件同時更新,而后端傳過來的數(shù)據(jù)我們需要分割成兩個數(shù)組,這個時候,單獨監(jiān)聽一個數(shù)組已經(jīng)達不到項目需

    2024年02月15日
    瀏覽(27)
  • vue watch監(jiān)聽數(shù)據(jù)變化

    監(jiān)聽數(shù)據(jù)變化,在Vue中是通過偵聽器來實現(xiàn)的,你也可以將它理解為監(jiān)聽器,時刻監(jiān)聽某個數(shù)據(jù)的變化 這一次我們要添加的是watch屬性。下面我們先來眼熟一下偵聽器的添加位置: 偵聽器更多的是用在異步操作中,所謂異步操作就是數(shù)據(jù)返回有所延遲的操作,比如說我們要請

    2024年02月12日
    瀏覽(31)
  • Vue2 Watch監(jiān)聽

    在Vue2中,我們可以使用watch來監(jiān)聽一個數(shù)據(jù)的變化,并且在數(shù)據(jù)變化時執(zhí)行一些操作。這個特性是Vue2非常強大的一個功能,可以幫助我們監(jiān)控一個或多個數(shù)據(jù)的變化,然后做出相應(yīng)的反應(yīng)。 要使用watch,我們需要在Vue組件的選項中聲明一個watch對象,如下: watch對象的每個屬

    2024年02月17日
    瀏覽(30)
  • python 監(jiān)聽鍵盤事件和鼠標(biāo)事件

    鍵盤監(jiān)聽: python有一個很強大的鍵盤監(jiān)聽庫,那就是 keyboard 。他的父類庫 pynput 可以實現(xiàn)鼠標(biāo)監(jiān)聽 可以自行下載 pip install keyboard | pip install pynput 代碼參考

    2024年02月13日
    瀏覽(42)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包