色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue method 箭頭函數(shù)

榮姿康1年前10瀏覽0評論

箭頭函數(shù)是ECMAScript 6中新增的語法,在Vue的method中也常常使用到。使用箭頭函數(shù)可以簡化代碼的書寫,同時也避免了this綁定的問題。

在Vue的method中,我們通常需要使用this關(guān)鍵字來操作組件實例中的數(shù)據(jù)或者執(zhí)行其它方法。但是由于JavaScript函數(shù)中的this關(guān)鍵字在不同的上下文環(huán)境下指向的對象不同,這就會造成this丟失的問題。這時候,就可以使用箭頭函數(shù)來解決這個問題。

// 使用函數(shù)聲明方式
methods: {
handleClick: function () {
console.log(this.foo);
}
}
// 使用箭頭函數(shù)
methods: {
handleClick: () =>{
console.log(this.foo);
}
}

可以看到,箭頭函數(shù)沒有自己的this,它的this與它定義時所處的上下文環(huán)境的this保持一致。在Vue的method中,通常情況下箭頭函數(shù)會綁定到Vue實例中,在箭頭函數(shù)中使用this時,指的是Vue實例本身。

// Vue實例中的數(shù)據(jù)
data() {
return {
foo: 'bar'
}
}
// 使用箭頭函數(shù)
methods: {
handleClick: () =>{
console.log(this.foo); // 輸出bar
}
}

另外,在Vue實例中使用箭頭函數(shù)時需要注意作用域的問題。箭頭函數(shù)的作用域是函數(shù)定義時所處的作用域,而不是執(zhí)行時所處的作用域。也就是說,在Vue實例中使用箭頭函數(shù)時,箭頭函數(shù)中的變量將會取其定義時所處的作用域的值。

// Vue實例中的數(shù)據(jù)
data() {
return {
foo: 'bar'
}
}
// 作用域問題
methods: {
handleClick: () =>{
let foo = 'baz';
console.log(this.foo); // 輸出bar,而不是baz
}
}

最后需要注意的是,在Vue method中,如果需要訪問Vue實例中的this,我們通常使用Vue實例的$refs屬性:

// 在Vue Template中定義一個ref
div content
// 在method中獲取Vue實例中的this methods: { handleClick: () =>{ console.log(this.$refs.myDiv); } }

使用箭頭函數(shù)不僅可以簡化Vue method中的代碼,還可以解決this丟失的問題。但需要注意的是,箭頭函數(shù)在作用域和this綁定方面與普通函數(shù)有所不同,需要我們謹(jǐn)慎使用。