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

計(jì)算屬性和監(jiān)聽(tīng)屬性,生命周期鉤子,組件介紹

這篇具有很好參考價(jià)值的文章主要介紹了計(jì)算屬性和監(jiān)聽(tīng)屬性,生命周期鉤子,組件介紹。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

計(jì)算屬性

# 計(jì)算屬性是基于它們的依賴(lài)進(jìn)行緩存的
# 計(jì)算屬性只有在它的相關(guān)依賴(lài)發(fā)生改變時(shí)才會(huì)重新求值
# 計(jì)算屬性就像Python中的property,可以把方法/函數(shù)偽裝成屬性
# 計(jì)算屬性必須要有返回值

基本使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
</head>
<body>
<div id="d1">
    <h1>普通函數(shù)---其他數(shù)據(jù)變化---》函數(shù)會(huì)重寫(xiě)計(jì)算</h1>
    年齡:<input type="text" v-model="age">
    姓名:<input type="text" v-model="name">
    <br>
    {{getAge()}}
    <br>
    <h1>計(jì)算屬性</h1>
    年齡:<input type="text" v-model="age1">
    姓名:<input type="text" v-model="name1">
    <br>
    {{newAge}}
    <br>
</div>
</body>
<script>
    var vm = new Vue({
        el: '#d1',
        data: {
            age: '',
            name: '',
            age1: '',
            name1: '',
        },
        methods: {
            getAge() {
                console.log('我執(zhí)行了')
                return Number(this.age) + 10
            }
        },
        computed: {
            newAge() {
                console.log('我執(zhí)行了--計(jì)算屬性')
                return Number(this.age1) + 20
            }
        }
    })
</script>
</html>

首字母變大寫(xiě)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
</head>
<body>
<div id="d1">
    <h1>首字母變大寫(xiě)</h1>
    <input type="text" v-model="name"> ---》{{newName}}
</div>
</body>
<script>
    var vm = new Vue({
        el: '#d1',
        data: {
            name: ''
        },
        computed: {
            newName() {
                return this.name.substring(0, 1).toUpperCase() + this.name.substring(1)
            }
        }
    })
</script>
</html>

通過(guò)計(jì)算屬性,重寫(xiě)過(guò)濾案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
</head>
<body>
<div id="app">
    <h1>過(guò)濾案例</h1>
    <input type="text" v-model="search">
    <ul>
        <li v-for="item in newDataList">{{item}}</li>
    </ul>
</div>
</body>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            search: '',
            dataList: ['a', 'at', 'atom', 'be', 'beyond', 'bee', 'c', 'cs', 'csrf'],
        },
        computed:{
            newDataList(){
                return  this.dataList.filter(item => item.indexOf(this.search) >= 0)
            }
        }
    })
</script>
</html>

監(jiān)聽(tīng)屬性

只要屬性發(fā)生變化,就會(huì)執(zhí)行 函數(shù)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
</head>
<body>
<div id="app">
    <h1>監(jiān)聽(tīng)屬性</h1>
    <button @click="ordering='id'">按id排序</button>
    <button @click="ordering='price'">按價(jià)格排序</button>
</div>
</body>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            ordering: ''
        },
        watch: {
            ordering() {
                console.log('我變了,向后端發(fā)送請(qǐng)求')
                console.log(this.ordering)
            }
        }
    })
</script>
</html>

生命周期鉤子

# vue 組件的生命周期鉤子函數(shù)
?? ?一個(gè)vue的組件,從創(chuàng)建開(kāi)始---》到最后銷(xiāo)毀---》經(jīng)歷一些過(guò)程---》每個(gè)過(guò)程都綁定了一個(gè)函數(shù)--》當(dāng)?shù)竭@個(gè)過(guò)程的時(shí)候,這個(gè)函數(shù)就會(huì)執(zhí)行
? ? 面向切面編程:AOP
? ??
?
# 8個(gè)生命周期鉤子函數(shù)
?? ?1.beforeCreate: 組件創(chuàng)建之前實(shí)現(xiàn)這個(gè):組件html,js--》html和js都是空的
? ? 2.created:組件創(chuàng)建完成后:js就有值了,html還是空的 ?(向后端發(fā)送ajax請(qǐng)求)
? ? 3.beforeMount:掛載模板之前,js有值,模板(html) 還是空的(向后端發(fā)送ajax請(qǐng)求)
? ? 4.mounted:掛載完成:js有值,模板有值
? ? 5.beforeUpdate:刷新之前執(zhí)行:只要頁(yè)面發(fā)送變化或js變量發(fā)生變化,就會(huì)觸發(fā)它的執(zhí)行
? ? 6.updated:刷新之后執(zhí)行
? ? 7.beforeDestroy:被銷(xiāo)毀之前執(zhí)行 ?(資源清理性工作)
? ? 8.destroyed:被銷(xiāo)毀之后執(zhí)行
? ??
# 實(shí)際用途
?? ?1 頁(yè)面加載完成,向后端發(fā)請(qǐng)求拿數(shù)據(jù)
? ? ?? ?寫(xiě)在create中
? ? ? ??
? ? 2 組件中有定時(shí)任務(wù),組件銷(xiāo)毀,要銷(xiāo)毀定時(shí)任務(wù)、
??


# 補(bǔ)充:定時(shí)器和延時(shí)器
? ? setTimeout( ()=>{
? ? ? ? console.log('延時(shí)器,3s后執(zhí)行')
? ? },3000)
? ??
? ? setInterval(()=>{
? ? ? ? console.log('每隔3s執(zhí)行')
? ? },3000)

組件介紹

# 組件是:有模板,有js的 ,有方法的 對(duì)象  組件和組件直接的 變量,模板都是隔離的

# 定義組件
    Vue.component('Child',{
        template: `
          <div>
          <h1>我是組件</h1>
          <button @click="haneleClick">點(diǎn)我看美女</button>
          <p>年齡是:{{ age }}</p>
          </div>`,
        data() {
            return {
                age: 19
            }

        },
        methods: {
            haneleClick() {
                alert('美女')
            }
        }
    })
# 使組件,直接根據(jù)組件名使用即可
  <Child></Child>

局部組件和全局組件

?# ?全局組件
?? ?- 定義:
? ? Vue.component('Child',{})
? ? - 使用,可以在任意位置使用
? ? ?? ?<Child></Child>
?? ?
# 局部組件-->只能定義在組件內(nèi)部,只能在當(dāng)前組件中使用
?? ?-定義
?? ? var vm = new Vue({
? ? ? ? el: '#app',
? ? ? ? data: {},
? ? ? ? components:{局部組件:{}}
? ? })
? ? -使用:只能用在被 當(dāng)前組件管理的 html (#app) 中,放在別的位置找不到

全局組件使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
</head>
<body>
<div id="d1">
    <h1>組件的使用</h1>
    <button @click="handleClick">點(diǎn)我看美女</button>
    <hr>
    <lyz></lyz>
</div>
</body>
<script>
    // 定義全局組件
    Vue.component('lyz', {
        template: `
          <div>
            <h1>{{ name }}</h1>
            <button @click="handleClick">點(diǎn)我換名字</button>
          </div>`,
        data() {
            return {
                name: 'lyz'
            }
        },
        methods: {
            handleClick() {
                this.name = '吳彥祖'
            }
        }
    })
    var vm = new Vue({
        el: '#d1',
        data: {},
        methods: {
            handleClick() {
                alert('美女')
            }
        }
    })
</script>
</html>

局部組件的使用

局部組件是定義在組件內(nèi)部,只能在當(dāng)前組件中使用文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-809999.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
</head>
<body>
<div id="app">
    <h1>局部組件的使用</h1>
    <Child></Child>
</div>
</body>
<script>
    // 全局組件
    Vue.component('Child', {
        template: `
          <div>
            <lyz></lyz>
          </div>
        `,
        // 局部組件
        components: {
            lyz: {
                template: `
                  <div>
                    <h2>我是局部組件</h2>
                  </div>
                `,
                data() {
                    return {}
                },
                methods: {}
            }
        }
    })
    var vm = new Vue({
        el: '#app',
        data: {},
        methods: {
            handleClick() {
                alert('美女')
            }
        },
    })
</script>
</html>

組件間通信

父?jìng)髯?/h4>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
</head>
<body>
<div id="d1">
    <h1>組件通信之父?jìng)髯樱鹤远x屬性</h1>
    <p>父組件中得名字:{{name}}</p>
    <div style="background-color: #c0e9ff">
        <child :nn="name" mm="lyz"></child>
    </div>
</div>
</body>
<script>
    Vue.component('child',{
        template:`
            <div>
            <h2>我是Child組件</h2>
            <p>{{nn}}==={{mm}}</p>
            </div>
        `,
        props:['nn','mm']
    })
    var vm = new Vue({
        el:'#d1',
        data:{
            name:'吳彥祖'
        },
        methods:{
        }
    })
</script>
</html>

子傳父

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
</head>
<body>
<div id="d1">
    <h1>組件通信之子傳父:自定義事件</h1>
    <p>子組件的值:{{p_name}}</p>
    <child @mm="handleEvent"></child>
</div>
</body>
<script>
    Vue.component('child', {
        template: `
          <div>
            <h2>我是Child組件</h2>
            <input type="text" v-model="name">---{{ name }}
            <button @click="handleSend">傳給父親</button>
          </div>
        `,
        data() {
            return {
                name: ''
            }
        },
        methods: {
            handleSend() {
                this.$emit('mm', this.name)
            }
        }
    })
    var vm = new Vue({
        el: '#d1',
        data: {
            p_name: ''
        },
        methods: {
            handleEvent(name) {
                this.p_name = name
            }
        }
    })
</script>
</html>

到了這里,關(guān)于計(jì)算屬性和監(jiān)聽(tīng)屬性,生命周期鉤子,組件介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Vue入門(mén)三(表單控制|購(gòu)物車(chē)案例|v-model進(jìn)階|與后端交互|計(jì)算屬性|監(jiān)聽(tīng)屬性|Vue生命周期)

    Vue入門(mén)三(表單控制|購(gòu)物車(chē)案例|v-model進(jìn)階|與后端交互|計(jì)算屬性|監(jiān)聽(tīng)屬性|Vue生命周期)

    v-model雙向數(shù)據(jù)綁定,還可以對(duì)輸入框數(shù)據(jù)進(jìn)行一定的限定。 v-modle 釋義 lazy 等待input框的數(shù)據(jù)綁定時(shí)區(qū)焦點(diǎn)之后再變化 number 以數(shù)字開(kāi)頭并只保留后面的數(shù)字,不保留字母;字母開(kāi)頭都保留 trim 去除首位的空格 與后端交互統(tǒng)一使用json編碼格式 與后端交互涉及到跨域問(wèn)題后,

    2024年01月21日
    瀏覽(27)
  • Vue介紹&如何安裝vue&Vue生命周期鉤子&MVVM

    Vue介紹&如何安裝vue&Vue生命周期鉤子&MVVM

    目錄 1.vue介紹 1.1 什么是vue 1.2 vue的優(yōu)點(diǎn) 2. 庫(kù)和框架的區(qū)別 2.1 庫(kù) 2.2 框架 3. MVVM 4. 安裝vue 5.開(kāi)發(fā)示例 5.1 vue實(shí)例 5.2 綁定事件 5.3 Vue雙向數(shù)據(jù)綁定 6. Vue生命周期鉤子 vue是一個(gè)構(gòu)建用戶(hù)界面UI的漸進(jìn)式j(luò)avascript框架,漸進(jìn)式的框架是指可以一步一步的由淺入深的去使用這個(gè)框架,

    2024年02月07日
    瀏覽(48)
  • Vue - 實(shí)現(xiàn)類(lèi)似小程序 onShow() 一樣的生命周期鉤子方法(監(jiān)聽(tīng)頁(yè)面的顯示,只要頁(yè)面顯示就執(zhí)行代碼)

    Vue - 實(shí)現(xiàn)類(lèi)似小程序 onShow() 一樣的生命周期鉤子方法(監(jiān)聽(tīng)頁(yè)面的顯示,只要頁(yè)面顯示就執(zhí)行代碼)

    我們都知道,在微信小程序和 uni-app 項(xiàng)目中,頁(yè)面有一個(gè) onShow() 生命周期,當(dāng)頁(yè)面顯示時(shí)就會(huì)觸發(fā)。 但在 Vue.js / Nuxt.js 項(xiàng)目中是沒(méi)有這個(gè)鉤子函數(shù)的, 本文將提供 最簡(jiǎn)單、高效 的解決方案, 另外兼容性親測(cè)完美。 如下效果圖所示,首頁(yè)每次顯示的時(shí)候都會(huì)觸發(fā)(您看控制

    2024年02月11日
    瀏覽(29)
  • Ionic4 生命周期鉤子函數(shù)和angular生命周期鉤子函數(shù)介紹

    Ionic 4(以及之后的 Ionic 版本)使用了 Angular 生命周期鉤子,因?yàn)?Ionic 是基于 Angular 構(gòu)建的。因此,Ionic 4 中的生命周期與 Angular 組件生命周期非常相似。以下是一些常見(jiàn)的 Ionic 4 生命周期鉤子: ionViewDidLoad : 在頁(yè)面加載完成后觸發(fā)。通常用于執(zhí)行一次性的初始化任務(wù)。不推

    2024年02月07日
    瀏覽(27)
  • Vue3 第三節(jié) 計(jì)算屬性,監(jiān)視屬性,生命周期

    Vue3 第三節(jié) 計(jì)算屬性,監(jiān)視屬性,生命周期

    1.computed計(jì)算屬性 2.watch監(jiān)視函數(shù) 3.watchEffect函數(shù) 4.Vue的生命周期函數(shù) 計(jì)算屬性簡(jiǎn)寫(xiě)和完整寫(xiě)法 2.1 監(jiān)視情況分類(lèi) ?情況①?監(jiān)視r(shí)ef定義的響應(yīng)式數(shù)據(jù): 第一個(gè)參數(shù)是監(jiān)視的數(shù)據(jù),第二個(gè)參數(shù)是一個(gè)回調(diào)函數(shù) immediate:一上來(lái)就執(zhí)行,放到第三個(gè)參數(shù)中 情況② 監(jiān)視多個(gè)ref定義的響應(yīng)

    2024年02月14日
    瀏覽(24)
  • Angular--父子組件生命周期鉤子(lifecycle hooks)執(zhí)行過(guò)程

    Angular--父子組件生命周期鉤子(lifecycle hooks)執(zhí)行過(guò)程

    組件初始化過(guò)程中,生命周期鉤子執(zhí)行順序: constructor()構(gòu)造函數(shù),初始化class,(constructor不屬于Angular生命周期鉤子的范疇,這里只是說(shuō)明組件組件初始化會(huì)先調(diào)用構(gòu)造函數(shù))。 ngOnChanges()--如果組件沒(méi)有輸入屬性(@Input()),或者使用時(shí)沒(méi)有提供任何輸入屬性,那么angular不會(huì)調(diào)用它

    2024年01月20日
    瀏覽(22)
  • vue3-生命周期鉤子函數(shù)

    聲明周期函數(shù)onMounted ,onUnmounted,onUpdated onMounted:頁(yè)面渲染之前執(zhí)行,執(zhí)行完,頁(yè)面就出來(lái)了 onUnmounted:組件注銷(xiāo)之前執(zhí)行,執(zhí)行完組件就不在頁(yè)面顯示了。如果隱藏組件就行執(zhí)行。 onUpdated:當(dāng)組件內(nèi)的內(nèi)容發(fā)生變化時(shí),就會(huì)執(zhí)行這個(gè)更新鉤子函數(shù),比如刪除數(shù)組中的某個(gè)元素

    2024年02月11日
    瀏覽(32)
  • Vue生命周期--四大階段--8個(gè)鉤子之mounted鉤子的渲染

    Vue生命周期--四大階段--8個(gè)鉤子之mounted鉤子的渲染

    Vue生命周期 :一個(gè)Vue實(shí)例從創(chuàng)建到銷(xiāo)毀的整個(gè)過(guò)程。 生命周期四個(gè)階段 :創(chuàng)建(響應(yīng)式數(shù)據(jù))-掛載(渲染模板)-更新(修改數(shù)據(jù),更新視圖)-銷(xiāo)毀(銷(xiāo)毀實(shí)例) eg: 案例——記事本! 1.成果展示 2.需求:商品的添加與刪除;價(jià)格超過(guò)500標(biāo)紅;統(tǒng)計(jì)計(jì)算總消費(fèi);消費(fèi)賬單使用餅圖展示

    2024年01月19日
    瀏覽(32)
  • Angular 17+ 高級(jí)教程 – Component 組件 の 生命周期鉤子 (Lifecycle Hooks)

    Angular 17+ 高級(jí)教程 – Component 組件 の 生命周期鉤子 (Lifecycle Hooks)

    之前在 Component 組件 の Angular Component vs Custom Elements?文章中,我們有學(xué)習(xí)過(guò)幾個(gè)基礎(chǔ)的 Lifecycle Hooks。 比如?OnChanges、OnInit、AfterViewInit、OnDestroy,但那篇只是微微帶過(guò)而已。 這篇讓我們來(lái)深入理解 Angular 的?Lifecycle Hooks。 ? 在?Component 組件 の Dependency Injection NodeInjector?文章中

    2024年03月09日
    瀏覽(37)
  • 探索Vue生命周期鉤子函數(shù):從創(chuàng)生到銷(xiāo)毀

    探索Vue生命周期鉤子函數(shù):從創(chuàng)生到銷(xiāo)毀

    Vue這個(gè)引領(lǐng)前端開(kāi)發(fā)潮流的框架,其優(yōu)雅的響應(yīng)式數(shù)據(jù)綁定和組件式開(kāi)發(fā)方式,使得它備受矚目。然而,Vue的魅力絕不僅限于此,它還賦予開(kāi)發(fā)者一組神奇的生命周期鉤子函數(shù),能夠在組件的各個(gè)成長(zhǎng)階段插入自定義代碼。本文將帶你進(jìn)入Vue生命周期鉤子函數(shù)的奇妙世界,一

    2024年02月11日
    瀏覽(33)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包