我只是想知道哪种方式定义属性最可靠,应该在模板中生成输出。
在构造函数中定义属性:
模板参考:
<h1>{{msg}}</h1>
属性定义:
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
@Component
export default class Test extends Vue {
protected msg: string;
public constructor() {
super();
this.msg = 'Today\'s date ' + moment().format('YYYY/MM/DD');
}
}
</script>
浏览器中的输出:
<h1>Today's date 2019/03/07</h1>
在挂载的生命周期中定义属性:
模板参考:
<h1>{{msg}}</h1>
属性定义:
export default class Test extends Vue {
protected msg: string = '';
mounted() {
this.msg = 'Today\'s date ' + moment().format('YYYY/MM/DD');
}
}
浏览器中的输出:
<h1>Today's date 2019/03/07</h1>
通过 get 和 set 定义属性,在构造函数中设置值:
模板参考:
<h1>{{msgText}}</h1>
属性定义:
export default class Test extends Vue {
protected msg: string = '';
public constructor() {
super();
this.msgText = 'Today\'s date ' + moment().format('YYYY/MM/DD');
}
get msgText(): string {
return this.msg;
}
set msgText(msg:string) {
this.msg = msg;
}
}
浏览器中的输出:
<h1>Today's date 2019/03/07</h1>
问题:
- 所有三种方式都会产生相同的输出。是否有黄金法则/最佳实践,应如何定义属性以及在哪个生命周期中?
- 如果属性是在构造函数或已安装的生命周期中定义的,是否有区别?