Vue methods和computed中不能使用箭头函数
-
概述
在 Vue 的
和methods
中不能使用箭头函数,箭头函数中的computed
会指向this
而非 Vue 的实例。windows
-
示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Vue methods和computed中不能使用箭头函数</title> </head> <body> <div id="app"> <h2>使用箭头函数</h2> <button @click="method_1">使用箭头函数回调</button> <p>name: {{ computed_1 }}</p> <h2>不使用箭头函数</h2> <button @click="method_2">使用箭头函数回调</button> <p>name: {{ computed_2 }}</p> </div> <!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> app = new Vue({ el: '#app', data: { name: 'data中的name变量' }, methods: { method_1: () => { this.name = 'method_1函数设置的属性' console.log('method_1:'+this) // this 指向的是windows }, method_2() { this.name = 'method_2函数设置的属性' console.log('method_2:'+this) // this 指向的是Vue实例 } }, computed: { computed_1: () => { console.log('computed_1:'+this) // this 指向的是windows return this.name }, computed_2() { console.log('computed_2:'+this) // this 指向的是Vue实例 return this.name } } }) </script> </body> </html>