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

【Vue3 知識第四講】數(shù)據(jù)雙向綁定、事件綁定、事件修飾符詳解

這篇具有很好參考價值的文章主要介紹了【Vue3 知識第四講】數(shù)據(jù)雙向綁定、事件綁定、事件修飾符詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、數(shù)據(jù)雙向綁定

什么是數(shù)據(jù)雙向綁定?

  • 當數(shù)據(jù)發(fā)生變化的時候,視圖會相應(yīng)的發(fā)生變化
  • 當視圖發(fā)生改變的時候,數(shù)據(jù)也會相應(yīng)的同步變化

數(shù)字化管理平臺
Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus
權(quán)限系統(tǒng)-商城
個人博客地址

雙向綁定的指令

? v-model 指令實現(xiàn)數(shù)據(jù)雙向綁定

雙向綁定使用場景

? 利用 v-model 指令,限制在 input select textarea components (組件) 中使用

示例:
【Vue3 知識第四講】數(shù)據(jù)雙向綁定、事件綁定、事件修飾符詳解,前端開發(fā),Vue,vue,數(shù)據(jù)綁定,事件綁定,修飾符
修飾符

  • .lazy 默認情況下,v-model 會在每次 input 事件后更新數(shù)據(jù) (IME 拼字階段的狀態(tài)例外)。你可以添加 lazy 修飾符來改為在每次 change 事件后更新數(shù)據(jù)
  • .number 如果你想讓用戶輸入自動轉(zhuǎn)換為數(shù)字,你可以在 v-model 后添加 .number 修飾符來管理輸入
  • .trim 如果你想要默認自動去除用戶輸入內(nèi)容中兩端的空格,你可以在 v-model 后添加 .trim 修飾符
<div><input type="text" v-model.lazy="data"></div>
<div><input type="text" v-model.number.trim="numData" @change="checkType"></div>

二、事件綁定詳解

2.1 Vue中的事件綁定指令

  • v-on 指令用法

    <button v-on:click="fn">v-on</button>
    
  • 指令可以簡寫為 @ (語法糖)

    <button @click="fn2">@語法糖</button>
    

2.2 事件函數(shù)的調(diào)用方式

  • 直接綁定函數(shù)名

    <button v-on:click="fn">v-on</button>
    
  • 調(diào)用函數(shù)

    <button v-on:click="fn()">v-on</button>
    

2.3 事件函數(shù)參數(shù)傳遞

  • 普通參數(shù):多個參數(shù)使用逗號隔開

    <button v-on:click="fn(10,20,30)">v-on</button>
    
  • 事件對象:

    tip1:如果事件直接綁定函數(shù)名稱 或者 調(diào)用函數(shù)并未傳遞任何參數(shù),那么事件函數(shù)會默認傳遞事件對象作為第一個參數(shù);

    tip2:如果事件綁定函數(shù)調(diào)用時傳遞了參數(shù),那么事件對象必須作為最后一個參數(shù)顯式傳遞,并且事件對象的名稱必須是 $event

    tip3:在不考慮兼容性問題,且允許 window 全局對象存在的情況下,可以在函數(shù)內(nèi)直接通過全局對象獲取事件對象 window.event 也可,建議使用傳參的方式。

  • 小案例:購物車簡易計數(shù)器
    【Vue3 知識第四講】數(shù)據(jù)雙向綁定、事件綁定、事件修飾符詳解,前端開發(fā),Vue,vue,數(shù)據(jù)綁定,事件綁定,修飾符
    ? 實現(xiàn)思路:

  1. data 中定義初始的數(shù)量 num
  2. 將 num 使用 “插值表達式” 或 “v-text指令” 設(shè)置給對應(yīng)的標簽
  3. 使用 v-on 指令給加減按鈕定義點擊事件 add 和 reduce
  4. 在 methods 中定義 add 和 reduce 方法的邏輯:數(shù)量最少為 1,最大為 20

三、事件修飾符

3.1 Vue中常用的事件修飾符

  • .stop 阻止冒泡

  • .prevent 取消默認事件

  • .self 僅當 event.target 是元素本身時才會觸發(fā)事件處理器

  • .capture 添加事件監(jiān)聽器時,使用 capture 捕獲模式

  • .once 事件最多被觸發(fā)一次

  • .passive 修飾符一般用于觸摸事件的監(jiān)聽器,可以用來改善移動端設(shè)備的滾屏性能。不能和 .prevent 一起使用。

    // 通過 .stop 修飾符阻止事件冒泡行為
    <div class="out" @click="fn2">
        外部容器
        <div class="in" @click.stop="fn">內(nèi)部容器</div>
    </div>
    
    //通過 .prevent 修飾符阻止 a 標簽?zāi)J跳轉(zhuǎn)功能
    <a  @click.prevent="cancel">跳轉(zhuǎn)百度</a>
    
    //鏈式修改
    <a @click.stop.prevent="doThat"></a>
    

3.2 按鍵修飾符

  • .enter => enter鍵

  • .tab => tab鍵

  • .delete (捕獲“刪除”和“退格”按鍵) => 刪除鍵

  • .esc => 取消鍵

  • .space => 空格鍵

  • .up => 上

  • .down => 下

  • .left => 左

  • .right => 右

    // .enter 回車鍵
    <div class="login">
          <p><label>用戶名:<input type="text" v-model="username" placeholder="請輸入用戶名"></label></p>
          <!-- 按鍵修飾符 .enter 觸發(fā)回車鍵 -->
          <p><label>密碼:<input type="password" v-model="password" placeholder="請輸入密碼" @keyup.enter="login"></label></p>
          <button @click="login">登錄</button>
      </div>
      
    // .delete 刪除建
    <input @keyup.delete='submit'/>
    

四、屬性綁定

v-bind 指令被用來響應(yīng)地更新 HTML 屬性

語法 v-bind:prop = val

語法糖 :prop = val

//屬性綁定
<h2 v-bind:title="title">屬性綁定演示</h2>
<p :class="ft20">語法糖</p>
<div v-bind="{id:‘container’,class:'wrapper'}"></div>

注:語法糖是對某個操作的簡化,來提高開發(fā)效率

五、類與樣式的綁定

5.1 class 類的綁定

  • 綁定對象語法

    v-bind:class = { 類名:類值,類名1:類值1,…,類名n:類值n }

    如果類名對應(yīng)的值為true,則顯示這個類名;否則不顯示這個類名

  • 綁定數(shù)組語法

    v-bind:class = [ 值1,值2,…,值n ]

    值1、值2對應(yīng)data中的數(shù)據(jù)

    <script setup>
    import { ref, reactive, computed } from 'vue'
    
    const clsName = "active-link"
    // 通過 ref 聲明的數(shù)據(jù),在 script 中,需要通過 .value 獲取和修改值;在 template 模板中使用時,則不需要通過 .value 獲取值,模板會自動解析數(shù)據(jù)
    const count = ref(0)
    
    // 注意:這里如果想要在count值修改后,實時響應(yīng)數(shù)據(jù)變化,需要采用計算屬性
    const clsObj = computed(() => ({
        link: true,
        activeLink: count.value % 2 == 0
    }))
    
    let fm = ref(true)
    </script>
    <template>
        <div>
            <!-- 基于 v-bind 指令,增強綁定 class類 與 style樣式,這兩個屬性值除了可以使用字符串外,還可以使用對象和數(shù)組的綁定 -->
            <a href="javascript:;" :class="clsName" class="link" style="text-decoration:none;"
                :style="'font-style:italic;'">超鏈接標簽演示字符串類型的class和style綁定</a>
            <hr>
            <a href="javascript:;" :class="clsObj"
                :style="{ 'text-decoration': 'none', fontStyle: count % 2 == 0 ? 'italic' : '' }">采用綁定對象的方式實現(xiàn)class和style的賦值</a>
            <hr>
            <a href="javascript:;" :class="['link', 'active-link', { fm }]"
                :style="['letter-spacing:6px;', { 'text-decoration': 'none', fontStyle: count % 2 == 0 ? 'italic' : '' }]">采用數(shù)組綁定的方式實現(xiàn)class和style</a>
        </div>
        <button @click="count++">count++</button>
    </template>
    
    <style scoped>
    hr {
        margin: 2vh 0;
    }
    
    .link {
        color: gray;
    }
    
    .active-link,
    .activeLink {
        font-weight: bold;
    }
    
    .fm {
        font-family: "楷體";
    }
    </style>
    

5.2 style 樣式綁定

  • 綁定對象語法

    v-bind:style = { 樣式名:樣式值,樣式名1:樣式值1,…,樣式名n:樣式值n }

  • 綁定數(shù)組語法

    v-bind:style = [值1,值2,…,值n]

    值1,值2,…,值n 需要在 data 中使用對象定義樣式和樣式值文章來源地址http://www.zghlxwxcb.cn/news/detail-700458.html

    <script setup>
    import { ref, reactive, computed } from 'vue'
    
    const clsName = "active-link"
    // 通過 ref 聲明的數(shù)據(jù),在 script 中,需要通過 .value 獲取和修改值;在 template 模板中使用時,則不需要通過 .value 獲取值,模板會自動解析數(shù)據(jù)
    const count = ref(0)
    
    // 注意:這里如果想要在count值修改后,實時響應(yīng)數(shù)據(jù)變化,需要采用計算屬性
    const clsObj = computed(() => ({
        link: true,
        activeLink: count.value % 2 == 0
    }))
    
    let fm = ref(true)
    </script>
    <template>
        <div>
            <!-- 基于 v-bind 指令,增強綁定 class類 與 style樣式,這兩個屬性值除了可以使用字符串外,還可以使用對象和數(shù)組的綁定 -->
            <a href="javascript:;" :class="clsName" class="link" style="text-decoration:none;"
                :style="'font-style:italic;'">超鏈接標簽演示字符串類型的class和style綁定</a>
            <hr>
            <a href="javascript:;" :class="clsObj"
                :style="{ 'text-decoration': 'none', fontStyle: count % 2 == 0 ? 'italic' : '' }">采用綁定對象的方式實現(xiàn)class和style的賦值</a>
            <hr>
            <a href="javascript:;" :class="['link', 'active-link', { fm }]"
                :style="['letter-spacing:6px;', { 'text-decoration': 'none', fontStyle: count % 2 == 0 ? 'italic' : '' }]">采用數(shù)組綁定的方式實現(xiàn)class和style</a>
        </div>
        <button @click="count++">count++</button>
    </template>
    
    <style scoped>
    hr {
        margin: 2vh 0;
    }
    
    .link {
        color: gray;
    }
    
    .active-link,
    .activeLink {
        font-weight: bold;
    }
    
    .fm {
        font-family: "楷體";
    }
    </style>
    

到了這里,關(guān)于【Vue3 知識第四講】數(shù)據(jù)雙向綁定、事件綁定、事件修飾符詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • vue3組件之間雙向綁定

    Vue3中組件的雙向綁定統(tǒng)一使用 v-model 進行處理,并且可以和多個數(shù)據(jù)進行綁定,例如 v-model:foo、v-model:bar。 v-model 等價于 :model-value=\\\"someValue\\\" 和 @update:model-value=\\\"someValue = $event\\\" v-model:foo 等價于 :foo=\\\"someValue\\\" 和 @update:foo=\\\"someValue = $event\\\" 父子組件之間雙向綁定 子組件可以結(jié)合 i

    2024年02月11日
    瀏覽(23)
  • Vue2和vue3中雙向數(shù)據(jù)綁定的原理,ES6的Proxy對象代理和JavaScript的Object.defineProperty,使用詳細

    簡介: Object.defineProperty大家都知道,是vue2中雙向數(shù)據(jù)綁定的原理,它 是 JavaScript 中一個強大且常用的方法,用于定義對象屬性,允許我們精確地控制屬性的行為,包括讀取、寫入和刪除等操作; 而Proxy是vue3中雙向數(shù)據(jù)綁定的原理,是ES6中一種用于創(chuàng)建代理對象的特殊對象,

    2024年02月15日
    瀏覽(46)
  • vue3 antd項目實戰(zhàn)——Form表單的提交與校驗【v-model雙向綁定input輸入框、form表單數(shù)據(jù),動態(tài)校驗規(guī)則】

    vue3 antd項目實戰(zhàn)——Form表單的提交與校驗【v-model雙向綁定input輸入框、form表單數(shù)據(jù),動態(tài)校驗規(guī)則】

    本文依舊沿用 ant design vue 組件庫和 ts 語言????更多內(nèi)容見Ant Design Vue官方文檔 ???? vue3 antd項目實戰(zhàn)——Form表單【后臺管理系統(tǒng) v-model數(shù)據(jù)的雙向綁定,input輸入框、Radio單選框的嵌套使用】 在上期文章中,我們完成了 UI界面的渲染 (渲染效果如下圖),本期文章將帶著大

    2023年04月22日
    瀏覽(24)
  • Vue (v-bind指令、el與data的兩種寫法、理解MVVM、數(shù)據(jù)代理、V-no事件處理、雙向數(shù)據(jù)綁定V-model、登陸頁面實現(xiàn)

    Vue (v-bind指令、el與data的兩種寫法、理解MVVM、數(shù)據(jù)代理、V-no事件處理、雙向數(shù)據(jù)綁定V-model、登陸頁面實現(xiàn)

    V-no用于監(jiān)聽DOM對象 v-model 指令用來在 input、select、textarea、checkbox、radio 等表單控件元素上創(chuàng)建雙向數(shù)據(jù)綁定,根據(jù)表單上的值,自動更新綁定的元素的值。 按鈕的事件我們可以使用 v-on 監(jiān)聽事件,并對用戶的輸入進行響應(yīng)。 下拉選項實例:

    2024年01月23日
    瀏覽(23)
  • vue3 antd項目實戰(zhàn)——radiogroup單選組合、radiobutton單選按鈕【v-model雙向綁定數(shù)據(jù)、v-for循環(huán)輸出options選擇項】

    vue3 antd項目實戰(zhàn)——radiogroup單選組合、radiobutton單選按鈕【v-model雙向綁定數(shù)據(jù)、v-for循環(huán)輸出options選擇項】

    ????更多內(nèi)容見Ant Design Vue官方文檔 ???? vue3+ant design vue+ts實戰(zhàn)【ant-design-vue組件庫引入】 ??vue3【列表渲染】v-for 詳細介紹(vue中的“循環(huán)”) 最近在項目開發(fā)中需要使用到 ant design vue 組件庫的 單選框(Radio)組件 。所以本期文章會詳細地教大家 如何使用Radio單選框 。

    2024年02月16日
    瀏覽(25)
  • VUE數(shù)據(jù)雙向綁定原理解析

    在Vue.js中,數(shù)據(jù)雙向綁定是一項非常強大的功能。它使開發(fā)者能夠輕松地將模板與數(shù)據(jù)進行動態(tài)關(guān)聯(lián),實現(xiàn)了頁面和數(shù)據(jù)之間的實時同步更新。本文將深入探討VUE中數(shù)據(jù)雙向綁定的原理,并通過代碼示例演示其工作機制。 VUE使用了JavaScript對象屬性的 Object.defineProperty() 方法來

    2024年02月11日
    瀏覽(19)
  • Vue中雙向數(shù)據(jù)綁定及底層原理

    Vue中的雙向數(shù)據(jù)綁定是指數(shù)據(jù)的變化可以自動更新到視圖,同時用戶在視圖上的操作也可以同步更新到數(shù)據(jù)。這種機制使得開發(fā)者無需手動操作DOM來實現(xiàn)數(shù)據(jù)與視圖的同步。 Vue實現(xiàn)雙向數(shù)據(jù)綁定的底層原理主要包括以下幾個方面: 數(shù)據(jù)劫持:Vue通過使用 Object.defineProperty 方法

    2024年02月09日
    瀏覽(19)
  • Vue父子組件間數(shù)據(jù)的雙向綁定

    Vue父子組件間數(shù)據(jù)的雙向綁定

    在vue中數(shù)據(jù)的流向通常是單向的,但是實際開發(fā)中,存在子組件對父組件值進行更新的情況,例如對表單組件進行二次封裝等,父組件需要響應(yīng)子組件的變化。雙向綁定呼之欲出,vue提供了兩種方法進行雙向綁定: 在父組件上 v-model 會利用子組件名為 value 的 prop 和名為 inp

    2024年02月06日
    瀏覽(25)
  • Vue雙向數(shù)據(jù)綁定原理(面試必問)

    Vue雙向數(shù)據(jù)綁定原理(面試必問)

    1、前端面試題庫 ( 面試必備) ? ? ? ? ? ? 推薦:★★★★★ 地址:前端面試題庫 ? vue.js是采用數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式,通過Object.defineProperty()來劫持各個屬性的setter,getter,在數(shù)據(jù)變動時發(fā)布消息給訂閱者,觸發(fā)相應(yīng)的監(jiān)聽回調(diào)來渲染視圖。 具體步驟

    2023年04月08日
    瀏覽(18)
  • vue2雙向數(shù)據(jù)綁定基本原理

    vue2雙向數(shù)據(jù)綁定基本原理

    vue2的雙向數(shù)據(jù)綁定(又稱響應(yīng)式)原理,是通過數(shù)據(jù)劫持結(jié)合發(fā)布訂閱模式的方式來實現(xiàn)的,通過 Object.defineProperty() 來劫持各個屬性的 setter , getter ,在數(shù)據(jù)變動時發(fā)布消息給訂閱者,觸發(fā)相應(yīng)的監(jiān)聽回調(diào)來渲染視圖。也就是說數(shù)據(jù)和視圖同步,數(shù)據(jù)發(fā)生變化,視圖跟著變化

    2023年04月10日
    瀏覽(29)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包