Vue Class Component详解

类组件

1. @component

使用@Component注解,将类转化为 vue 的组件,以下是一个示例

import vue from 'vue'
import Component from 'vue-class-component'


// HelloWorld class will be a Vue component
@Component
export default class HelloWorld extends Vue {
   }

2. Data属性

data属性初始化可以被声明为类的属性。

<template>
  <div>{
   {
    message }}</div>
</template>


<script>
import Vue from 'vue'
import Component from 'vue-class-component'


@Component
export default class HelloWorld extends Vue {
   
  // Declared as component data
  message = 'Hello World!'
}
</script>

需要注意的是,如果初始值是undefined,则类属性将不会是相应式的,这意味着不会检测到属性的更改:

import Vue from 'vue'
import Component from 'vue-class-component'


@Component
export default class HelloWorld extends Vue {
   
  // `message` will not be reactive value
  message = undefined
}

为了避免这种情况,可以使用 null 对值进行初始化,或者使用 data()构造钩子函数,如下:

import Vue from 'vue'
import Component from 'vue-class-component'


@Component
export default class HelloWorld extends Vue {
   
  // `message` will be reactive with `null` value
  message = null


  // See Hooks section for details about `data` hook inside class.
  data() {
   
    return {
   
      // `hello` will be reactive as it is declared via `data` hook.
      hello: undefined
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值