vue.js - 无法设置未定义的vuejs 3的属性
问题描述
在我的Something.vue
:
<template>
<p>{{ codes }}</p>
</template>
export default {
data() {
return {
codes: 'test'
}
},
name: 'Functions',
props: {
msg: String
},
setup() {
this.codes = 'does it work?';
}
</script>
<style>
</style>
我为什么要面对这个问题?
Uncaught TypeError: Cannot set property 'codes' of undefined
解决方案
在vue3
中,您可以像这样定义变量:
import { ref } from "vue";
export default {
name: 'Functions',
props: {
msg: String
},
setup() {
let codes = ref('does it work?');
return { codes }
}
</script>
你可以codes
在你的 Vue 组件中使用。
因为,在setup
方法中,不能使用this
关键字。它的执行早于其他生命周期函数
如果要更改codes
,可以在setup
or中定义一个函数methods
,如下所示:
setup() {
let codes = ref("does it work?");
function onChangeCodes() {
codes.value = "changed!";
}
return { codes, onChangeCodes };
}
然后,您可以在模板中使用此功能:
<template>
<div>{{ codes }}</div>
<button @click="onChangeCodes">change</button>
</template>
推荐阅读
- java - 有没有办法可以注入一个类,其构造函数在 micronaut 中有参数?
- c++ - 如何在 godbolt.org 上启用地址清理程序
- git - 所有 git 本地分支是否共享相同的工作目录?
- c++ - 如何在 C++ 中通过读取文件(cpp 和 header)创建对象
- tensorflow - 为什么 Gramian 矩阵适用于 VGG16,但不适用于 EfficientNet 或 MobileNet?
- php - 如何从laravel中的commentsController获取帖子ID
- python - 向 Redis 发送大量数据的最佳实践
- javascript - 数据表:排序时跳过空条目
- linear-algebra - BLAS例程仅计算矩阵产品的对角线元素?
- typescript - 替换泛型中的“any”