四、手把手教你 Vue2+Ts

Vue2+Ts

盛年不重来

watch监听:在@Component中增加 watch属性 ,其余的和之前vu2中写法一样

image.png

<template>
    <div class="about">
        {{count}}
        <button @click="addCount">addCount</button>
    </div>
</template>

<script lang="ts">
import Vue from 'vue'
import Component from 'vue-class-component'

@Component({
    watch: {
        count: {
            handler: (nv: number, ov: number) => {
                console.log(nv, ov);
            },
            deep: true,
            immediate: true
        }
    }
})
export default class HelloWorld extends Vue {
    count = 0;
    addCount() {
        this.count++;
    }
}
</script>

image.png

一日难再晨

props:在@Component中增加 props ,其余的和之前vu2中写法一样
image.png

<template>
    <div class="about">
        {{name}}
    </div>
</template>

<script lang="ts">
import Vue from 'vue'
import Component from 'vue-class-component'

@Component({
props:{
    name:{
        type:String,
        required:false,
        default:'张三'
    }
}
})
export default class HelloWorld extends Vue {

}
</script>

组件不传递name:
image.png
组件传递name:

image.png

及时当勉励

computed:在@Component中增加 computed ,其余的和之前vu2中写法一样

<template>
    <div class="about">
        {{nameComputed}}
        <input v-model="nameComputed">
    </div>
</template>

<script lang="ts">
import Vue from 'vue'
import Component from 'vue-class-component'

@Component({
    computed: {
        nameComputed: {
            get() {
                return this.aname;
            },
            set(name: string) {
                this.aname = name;
            }
        }
    }
})
export default class HelloWorld extends Vue {
    aname = "222";
}
</script>

image.png

岁月不待人

filter在@Component中增加 filter在 ,其余的和之前vu2中写法一样

<template>
    <div class="about">
             <p>{{aname}} ===> {{aname|toUpper}}</p>
             <p>{{count}} ===> {{count|toPercentage}}</p>
    </div>
</template>

<script lang="ts">
import Vue from 'vue'
import Component from 'vue-class-component'

@Component({
    filters: {
        toUpper: function (value:string) {
            return value.toUpperCase();
        },
        toPercentage: function (value:number) {
            return value * 100 + '%';
        },
    }
})
export default class HelloWorld extends Vue {
    aname = "hello ts";
    count = 0.3;
}
</script>

image.png

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值