Термин побочный эффект здесь относится к любым мутациям данных, выполняемым в получателе вычисляемого свойства.Например:
export default {
data() {
return {
firstName: 'john',
lastName: 'doe',
array: [1,2,3]
}
},
computed: {
fullName() {
this.firstName = 'jane'; // SIDE EFFECT - mutates a data property
return `${this.firstName} ${this.lastName}`
},
reversedArray() {
return this.array.reverse(); // SIDE EFFECT - mutates a data property
}
}
}
Обратите внимание, как fullName
мутирует firstName
, а reversedArray
мутирует array
.При использовании ESLint (например, из сгенерированного проекта Vue CLI ) вы увидите предупреждение :
[eslint] Unexpected side effect in "fullName" computed property. (vue/no-side-effects-in-computed-properties)
[eslint] Unexpected side effect in "reversedArray" computed property. (vue/no-side-effects-in-computed-properties)
demo