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

Vue核心基礎(chǔ)3:計(jì)算屬性和監(jiān)視屬性

這篇具有很好參考價(jià)值的文章主要介紹了Vue核心基礎(chǔ)3:計(jì)算屬性和監(jiān)視屬性。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1 計(jì)算屬性

這邊以姓名案例,來介紹計(jì)算屬性

<body>
    <div id="root">
        <!-- 姓:<input type="text" v-model:value="firstName"><br>
        名:<input type="text" v-model:value="lastName"><br> -->
        姓:<input type="text" v-model="firstName"><br>
        名:<input type="text" v-model="lastName"><br>
        全名:<span>{{fullName}}</span><br>
    </div>
    <script>
        const vm = new Vue({
            el: '#root',
            data: {
                firstName: '張',
                lastName: '三'
            },
            // 計(jì)算屬性
            computed: {
                // 1.完整寫法
                fullName: {
                    // get有什么作用?當(dāng)有人讀取fullName時(shí),get就會(huì)被調(diào)用,且返回值就作為fullName的值
                    get() {
                        // get函數(shù)中的this Vue已經(jīng)處理好了, 指向vm
                        // get什么時(shí)候被調(diào)用?1.初次讀取fullName時(shí)。2.所依賴的數(shù)據(jù)發(fā)生變化時(shí)
                        // 會(huì)有緩存,只調(diào)用一次,如果依賴的數(shù)據(jù)沒有變化,那么不會(huì)重新調(diào)用get方法,直接走緩存
                        return this.firstName.slice(0, 3) + '-' + this.lastName
                    },
                    // set什么時(shí)候被調(diào)用?當(dāng)fullName被修改時(shí)。
                    set(value) {
                        const arr = value.split('-')
                        this.firstName = arr[0]
                        this.lastName = arr[1]
                    }
                }

                // 2. 簡寫寫法:確定了計(jì)算屬性只讀不改才能用簡寫形式
                // 可以直接將fullName函數(shù)當(dāng)做一個(gè)屬性來用
                // fullName() {
                //     return this.firstName.slice(0, 3) + '-' + this.lastName
                // }
            }

        })
    </script>
</body>

計(jì)算屬性主要依靠它的返回值

Vue核心基礎(chǔ)3:計(jì)算屬性和監(jiān)視屬性,Vue,vue.js,前端,javascript?

2 監(jiān)視屬性

這邊以天氣案例,來介紹監(jiān)視屬性

<body>
    <div id="root">
        <h2>今天天氣很{{info}}</h2>
        <button @click="change">切換天氣</button>

    </div>
    <script>
        const vm = new Vue({
            el: '#root',
            data: {
                isHot: true
            },
            methods: {
                change() {
                    this.isHot = !this.isHot
                }
            },
            computed: {
                info() {
                    return this.isHot ? '炎熱' : '涼爽'
                }
            },
            watch: {
                isHot: {
                    immediate: false, // 初始化時(shí)如果為true,就是讓handler調(diào)用一下
                    // handler什么時(shí)候調(diào)用呢?  -> 當(dāng)isHot發(fā)生改變的時(shí)候
                    handler(newValue, oldValue) {
                        console.log('isHot被修改了')
                        console.log(newValue, oldValue)
                    }
                }
            }

        })

        // 這樣寫也可以
        // vm.$watch('isHot', {
        //     immediate: true,
        //     handler(newValue, oldValue) {
        //         console.log('isHot被修改了')
        //         console.log(newValue, oldValue)
        //     }
        // })
    </script>
</body>

2.1 深度監(jiān)視

            watch: {
                isHot: {
                    // immediate: false, // 初始化時(shí)如果為true,就是讓handler調(diào)用一下
                    // handler什么時(shí)候調(diào)用呢?  -> 當(dāng)isHot發(fā)生改變的時(shí)候
                    handler(newValue, oldValue) {
                        console.log('isHot被修改了')
                        console.log(newValue, oldValue)
                    }
                },

                // 1. 監(jiān)視多級結(jié)構(gòu)中某個(gè)屬性的變化
                 'numbers.a': function (newValue, oldValue) {
                     console.log('a被修改了')
                    console.log(newValue, oldValue)
                  },

                // 2. 監(jiān)視多級結(jié)構(gòu)中所有屬性的變化
                numbers: {
                    deep: true,
                    handler() {
                        console.log('numbers被修改了')
                    }
                }
            }

2.2 簡寫形式

            watch: {
                // 1.   完整寫法
                isHot: {
                    immediate: false, // 初始化時(shí)如果為true,就是讓handler調(diào)用一下
                    deep: true,  // 深度監(jiān)視

                    // handler什么時(shí)候調(diào)用呢?  -> 當(dāng)isHot發(fā)生改變的時(shí)候
                    handler(newValue, oldValue) {
                        console.log('isHot被修改了')
                        console.log(newValue, oldValue)
                    }
                },


                // 2. 簡寫
                isHot(newValue, oldValue) {
                    console.log('isHot被修改了')
                    console.log(newValue, oldValue)
                }

            }

2.3 使用監(jiān)視屬性實(shí)現(xiàn)姓名案例

<body>
    <div id="root">
        <!-- 姓:<input type="text" v-model:value="firstName"><br>
        名:<input type="text" v-model:value="lastName"><br> -->
        姓:<input type="text" v-model="firstName"><br>
        名:<input type="text" v-model="lastName"><br>
        全名:<span>{{fullName}}</span><br>
    </div>
    <script>
        const vm = new Vue({
            el: '#root',
            data: {
                firstName: '張',
                lastName: '三',
                fullName: '張-三'
            },
            watch: {
                firstName(newValue) {
                    console.log(this)
                    this.fullName = newValue + '-' + this.lastName
                },
                lastName(newValue) {
                    this.fullName = this.firstName + '-' + newValue
                }
            }

        })
    </script>
</body>

Vue核心基礎(chǔ)3:計(jì)算屬性和監(jiān)視屬性,Vue,vue.js,前端,javascript

Vue核心基礎(chǔ)3:計(jì)算屬性和監(jiān)視屬性,Vue,vue.js,前端,javascript?

3 computed 和 watch 的比較

Vue核心基礎(chǔ)3:計(jì)算屬性和監(jiān)視屬性,Vue,vue.js,前端,javascript文章來源地址http://www.zghlxwxcb.cn/news/detail-829584.html

到了這里,關(guān)于Vue核心基礎(chǔ)3:計(jì)算屬性和監(jiān)視屬性的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Vue3前端開發(fā),computed計(jì)算屬性的基礎(chǔ)練習(xí)

    Vue3前端開發(fā),computed計(jì)算屬性的基礎(chǔ)練習(xí)

    Vue3前端開發(fā),computed計(jì)算屬性的基礎(chǔ)練習(xí)! 在新版里面,和傳統(tǒng)的vue2一樣,計(jì)算屬性,都是對一些數(shù)據(jù)運(yùn)算進(jìn)行了封裝操作。返回結(jié)果是一個(gè)實(shí)時(shí)監(jiān)控的效果。區(qū)別在于,寫法不同。效果是一樣。 下面給大家展示一個(gè)簡單的案例。 如圖,自定義一個(gè)組件,ComputedDemo.vue。里

    2024年01月18日
    瀏覽(20)
  • GuLi商城-前端基礎(chǔ)Vue-計(jì)算屬性computed和偵聽器watch
  • Vue-12、Vue監(jiān)視屬性

    Vue-12、Vue監(jiān)視屬性

    1、介紹 Vue中的監(jiān)視屬性是通過watch選項(xiàng)來實(shí)現(xiàn)的。watch選項(xiàng)可以是一個(gè)對象,其中的每個(gè)屬性都是要監(jiān)視的屬性名,而每個(gè)屬性的值都是一個(gè)回調(diào)函數(shù),用于處理這個(gè)屬性的變化。 例如,假設(shè)有一個(gè)Vue實(shí)例的data對象中有一個(gè)屬性message,我們想要監(jiān)視這個(gè)屬性的變化,可以通

    2024年01月25日
    瀏覽(19)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的「數(shù)組」

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的「數(shù)組」

    當(dāng)前子專欄 基礎(chǔ)入門三大核心篇 是免費(fèi)開放階段 。 推薦他人訂閱,可獲取扣除平臺(tái)費(fèi)用后的35%收益,文末名片加V! 說明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費(fèi)開放 , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:除了通過訂閱\\\"白寶書系列專

    2024年02月04日
    瀏覽(23)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的DOM簡介

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的DOM簡介

    說明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費(fèi) , 如需要項(xiàng)目實(shí)戰(zhàn)或者是體系化資源,文末名片加V! 作者:不渴望力量的哈士奇(哈哥),十余年工作經(jīng)驗(yàn), 從事過全棧研發(fā)、產(chǎn)品經(jīng)理等工作,目前在公司擔(dān)任研發(fā)部門CTO。 榮譽(yù): 2022年度博客之星Top4、2023年度超

    2024年02月04日
    瀏覽(25)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的數(shù)組的常用方法 (一)

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的數(shù)組的常用方法 (一)

    當(dāng)前子專欄 基礎(chǔ)入門三大核心篇 是免費(fèi)開放階段 。 推薦他人訂閱,可獲取扣除平臺(tái)費(fèi)用后的35%收益,文末名片加V! 說明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費(fèi)開放 , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:除了通過訂閱\\\"白寶書系列專

    2024年02月07日
    瀏覽(23)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- DOM改變元素節(jié)點(diǎn)的css樣式、HTML屬性

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- DOM改變元素節(jié)點(diǎn)的css樣式、HTML屬性

    說明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費(fèi) , 如需要項(xiàng)目實(shí)戰(zhàn)或者是體系化資源,文末名片加V! 作者:不渴望力量的哈士奇(哈哥),十余年工作經(jīng)驗(yàn), 從事過全棧研發(fā)、產(chǎn)品經(jīng)理等工作,目前在公司擔(dān)任研發(fā)部門CTO。 榮譽(yù): 2022年度博客之星Top4、2023年度超

    2024年02月04日
    瀏覽(98)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript的流程控制語句「while循環(huán)語句」

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript的流程控制語句「while循環(huán)語句」

    當(dāng)前子專欄 基礎(chǔ)入門三大核心篇 是免費(fèi)開放階段 。 推薦他人訂閱,可獲取扣除平臺(tái)費(fèi)用后的35%收益,文末名片加V! 說明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費(fèi)開放 , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:除了通過訂閱\\\"白寶書系列專

    2024年02月04日
    瀏覽(28)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript的流程控制語句「break 和 continue語句」

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript的流程控制語句「break 和 continue語句」

    當(dāng)前子專欄 基礎(chǔ)入門三大核心篇 是免費(fèi)開放階段 。 推薦他人訂閱,可獲取扣除平臺(tái)費(fèi)用后的35%收益,文末名片加V! 說明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費(fèi)開放 , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:除了通過訂閱\\\"白寶書系列專

    2024年02月05日
    瀏覽(24)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript的流程控制語句「for循環(huán)語句及算法題」

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript的流程控制語句「for循環(huán)語句及算法題」

    當(dāng)前子專欄 基礎(chǔ)入門三大核心篇 是免費(fèi)開放階段 。 推薦他人訂閱,可獲取扣除平臺(tái)費(fèi)用后的35%收益,文末名片加V! 說明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費(fèi)開放 , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:除了通過訂閱\\\"白寶書系列專

    2024年02月07日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包