如何从计算 属性 Vue.js 访问数据

How to access data from computed property Vue.js

我正在使用 Vue.js,当我尝试从计算的 属性 中的数据访问变量时,它 returns undefined。 这是代码:

    <script>
     export default {
       name: 'app',
       data: () => {
         return {
           lang: 'sp'
         }
       },
       computed: {
         langEn: () => this.lang === 'en',
         langSp: () => this.lang === 'sp'
       }
     }
    </script>

这是在 NPM 项目中。在 .vue 文件中。像这样使用时可能表现不同?

感谢您的帮助

这是一个很常见的"gotcha"。

定义计算时不要使用粗箭头。

当您使用粗箭头定义计算、方法或数据时,您在词法上捕获 this,它将指向包含范围(通常为 window 或未定义)并且不是你的 Vue。

<script>
 export default {
   name: 'app',
   data() {
     return {
       lang: 'sp'
     }
   },
   computed: {
     langEn(){return this.lang === 'en'},
     langSp(){return this.lang === 'sp'}
   }
 }
</script>