亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
一、v-model
二、.sync修飾符
首頁 web前端 Vue.js 修飾符v-model與.sync有什麼不同?差異對比淺析

修飾符v-model與.sync有什麼不同?差異對比淺析

Jul 11, 2022 pm 08:37 PM
vue vue.js v-model

修飾符v-model與.sync有什麼不同?以下這篇文章跟大家聊聊v-model與.sync修飾符的差異,希望對大家有幫助!

修飾符v-model與.sync有什麼不同?差異對比淺析

在日常開發(fā)的過程中,v-model指令是常用到的,一般來說v-model指令在表單及元素上建立雙向資料綁定,但v-model本質(zhì)上是語法糖。提到語法糖這裡就不得不提到另一個與v-model有相似功能的雙向綁定語法糖了,那就是.sync修飾符。這裡對兩者進(jìn)行一下總結(jié):

一、v-model

#1. 作用

#相信過使用過vue框架的朋友對這個指令不會感到陌生,v-model是用來進(jìn)行<input>、<textarea> </textarea>、<select></select>元素上資料的雙向綁定的。 (學(xué)習(xí)影片分享:vue影片教學(xué)

?例如:

<template>
    <div >
        <input v-model="value" type="text"/>    //這里的v-model里面的value可以直接獲取到用戶的輸入值
    </div>
</template>

<script>

export default {
    components: {},
    data() {
        return {
            value:"",    //這里定義的value變量可以直接將上面獲取到的值進(jìn)行操作
        };
      }, 
    }
</script>
<style  scoped>

</style>

當(dāng)我們在input框裡輸入了某個值的時候,下面data裡的value就可以直接後去到我們輸入的值,而不需要操作dom元素來取得。

1. 本質(zhì)

v-model本質(zhì)上來說是一個語法糖,我們習(xí)慣性的寫法是這樣的:

 <input v-model="value" type="text"/>

但是實際上完整的寫法是這樣的:

<input :value="value" @input="value=$event.target.value" type="text" />

透過對比語法糖和原始寫法可以得出: 再給<input/>元素加入v-model屬性時,預(yù)設(shè)會把value當(dāng)作元素的屬性,然後把input事件當(dāng)作即時傳遞value的觸發(fā)事件。

注意:不是所有能進(jìn)行雙向資料綁定的元素都是input事件!

3、特殊用法

#在一般情況下,我們使用v-model主要是用於資料的雙向綁定,可以十分方便的取得到使用者輸入的值,但在某些特殊情況下,我們也可以將v-model用於父子元件之間資料的雙向綁定。

<template>
    <div class="father">
        <Son v-model="str"/>
    </div>
</template>

<script>

import Son from &#39;@/components/Son.vue&#39;;    //引入子組件

export default {
    components: {Son},
    data() {
        return {
            str:"father"
        };
      },
    }
</script>

這裡定義了一個father元件和son元件,並且將son元件引入father元件中,給son元件綁定了v-model進(jìn)行了傳值。此時我們需要在son元件中接收並使用這個值:

<template>
    <div class="son">
        我是在son組件里接收到的值:{{value}}
    </div>
</template>
<script>
export default {
    components: {},
    props:{
        value:{
            type:String,
        },
      },
    }
</script>

注意:這裡接受的值必須是value,寫成其他名字將會報錯!

父元件向子元件傳值,子元件中是無法直接修修改資料的,直接修改的話就會報錯

修飾符v-model與.sync有什麼不同?差異對比淺析

當(dāng)我們需要修改這個值時,就需要再將其傳入到父元件中修改。

這就需要在父元件中的子元件上定義一個自訂事件,透過子元件$emit('自訂事件名稱','值')的方法將值傳入父組件。

但是在這裡我們不能使用自訂事件,因為我們用的是v-model傳值,所以我們只能使用input事件來修改。

子元件中使用$emit()方法.呼叫父元件中的事件,並且進(jìn)行傳值

<template>
    <div class="son">
        我是在son組件里接收到的值:{{value}}
        <button @click="handleClick">click</button>
    </div>
</template>

<script>
export default {
    components: {},
    data() {
        return {
            str:&#39;son&#39;
        };
    },
    props:{
        value:{
            type:String,
        },
    },
    methods: {
        handleClick(){
            this.$emit(&#39;input&#39;,this.str)
        }
    },
    }
</script>

這樣就完成父子元件之間的資料雙向綁定效果

二、.sync修飾符

#1、作用

##.sync修飾符可以實現(xiàn)父子元件之間的雙向綁定,並且可以實現(xiàn)子元件同步修改父組件的值,相比較與

v-model來說,sync修飾符就簡單很多了:

2、本質(zhì)

    //正常父傳子
    <Son :a="num" />
    
    //加上sync之后的父傳子
    <Son :a.sync="num" />
    
    //它等價于
    <Son :a="num" @update:a="val=>a=val" />
    
    //相當(dāng)于多了一個事件監(jiān)聽,事件名是update:a,
    //回調(diào)函數(shù)中,會把接收到的值賦值給屬性綁定的數(shù)據(jù)項中。
這裡面的傳值與接收和正常的父元件向子元件傳值沒有差別,唯一的差別在於子元件往回傳值的時候$emit所呼叫的事件名稱必須是

update:屬性名稱,事件名稱寫錯不會報錯,但那時也不會有任何改變,這點需要注意。

總結(jié)

v-model與.sync: 相同點:都是語法糖,都可以實作父子元件中的資料通訊。

不同點:格式不同,v-model="num" ? ? ? ? ?:num.sync="num"

v-model:@input value ?? ?? ? ? ? ? ?

##還有就是,

v-model

只能使用一次,.sync可以使用多個。 【相關(guān)影片教學(xué)推薦:

vuejs入門教學(xué)

web前端入門

以上是修飾符v-model與.sync有什麼不同?差異對比淺析的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
Vue的反應(yīng)性轉(zhuǎn)換(實驗,然後被刪除)的意義是什麼? Vue的反應(yīng)性轉(zhuǎn)換(實驗,然後被刪除)的意義是什麼? Jun 20, 2025 am 01:01 AM

ReactivitytransforminVue3aimedtosimplifyhandlingreactivedatabyautomaticallytrackingandmanagingreactivitywithoutrequiringmanualref()or.valueusage.Itsoughttoreduceboilerplateandimprovecodereadabilitybytreatingvariableslikeletandconstasautomaticallyreac

如何在VUE應(yīng)用程序中實施國際化(I18N)和本地化(L10N)? 如何在VUE應(yīng)用程序中實施國際化(I18N)和本地化(L10N)? Jun 20, 2025 am 01:00 AM

國際化和傾斜度invueAppsareprimandermedusingthevuei18nplugin.1.installvue-i18nvianpmoryarn.2.createlo calejsonfiles(例如,en.json,es.json)fortranslationMessages.3.setupthei18ninstanceinmain.jswithlocaleconfigurationandmessagefil

VUE中的服務(wù)器端渲染SSR是什麼? VUE中的服務(wù)器端渲染SSR是什麼? Jun 25, 2025 am 12:49 AM

Server-Serdendering(SSR)InvueImProvesperformandSeobyGeneratingHtmlonTheserver.1.TheserverrunsvueApcodeAmpCodeAndGeneratesHtmlbBasedonThecurrentRoute.2.thathtmlssenttothebrowserimmed.3.vuehirative eveirtive eveirtive eveirtive eveirtive eveirtive eveirtive eveirtive eveirtiveThepage evepage evepage

如何將sublime文本與vue.js一起使用? 如何將sublime文本與vue.js一起使用? Jun 26, 2025 am 12:12 AM

toenhancevue.jsdevelopmentInSubliMeText,installvuesyntaxhighlightingviapackagecontrol,setupemmetforfasterhtmltmltplating,IntegrateEsLintAnd and prettierForLintingformatting和配置

如何在VUE中實現(xiàn)過渡和動畫? 如何在VUE中實現(xiàn)過渡和動畫? Jun 24, 2025 pm 02:17 PM

ToaddtransitionsandanimationsinVue,usebuilt-incomponentslikeand,applyCSSclasses,leveragetransitionhooksforcontrol,andoptimizeperformance.1.WrapelementswithandapplyCSStransitionclasseslikev-enter-activeforbasicfadeorslideeffects.2.Useforanimatingdynam

如何使用VUE構(gòu)建組件庫? 如何使用VUE構(gòu)建組件庫? Jul 10, 2025 pm 12:14 PM

搭建Vue組件庫需圍繞業(yè)務(wù)場景設(shè)計結(jié)構(gòu),並遵循開發(fā)、測試、發(fā)布的完整流程。 1.結(jié)構(gòu)設(shè)計應(yīng)按功能模塊分類,包括基礎(chǔ)組件、佈局組件和業(yè)務(wù)組件;2.使用SCSS或CSS變量統(tǒng)一主題與樣式;3.統(tǒng)一命名規(guī)範(fàn)並引入ESLint和Prettier保證代碼風(fēng)格一致;4.配套文檔站點展示組件用法;5.使用Vite等工具打包為NPM包並配置rollupOptions;6.發(fā)佈時遵循semver規(guī)範(fàn)管理版本與changelog。

如何用PHP開發(fā)問答社區(qū)平臺 PHP互動社區(qū)變現(xiàn)模式詳解 如何用PHP開發(fā)問答社區(qū)平臺 PHP互動社區(qū)變現(xiàn)模式詳解 Jul 23, 2025 pm 07:21 PM

1.PHP開發(fā)問答社區(qū)首選Laravel MySQL Vue/React組合,因生態(tài)成熟、開發(fā)效率高;2.高性能需依賴緩存(Redis)、數(shù)據(jù)庫優(yōu)化、CDN和異步隊列;3.安全性必須做好輸入過濾、CSRF防護(hù)、HTTPS、密碼加密及權(quán)限控制;4.變現(xiàn)可選廣告、會員訂閱、打賞、傭金、知識付費等模式,核心是匹配社區(qū)調(diào)性和用戶需求。

Vue成品資源網(wǎng)站免費入口 完整Vue成品永久在線觀看 Vue成品資源網(wǎng)站免費入口 完整Vue成品永久在線觀看 Jul 23, 2025 pm 12:39 PM

本文為Vue開發(fā)者和學(xué)習(xí)者精選了一系列頂級的成品資源網(wǎng)站。通過這些平臺,你可以免費在線瀏覽、學(xué)習(xí)甚至復(fù)用海量高質(zhì)量的Vue完整項目,從而快速提升開發(fā)技能和項目實踐能力。

See all articles