Во Vue $set
и $get
есть два встроенных метода экземпляра Vue, которые используются для добавления свойств к реактивному объекту или получения значения свойства. Вот как их использовать:
$установить
$set
используется для добавления свойства реактивного объекта и обеспечения того, чтобы это новое свойство также было реактивным. При добавлении свойств к уже созданному объекту, если для obj.key = value
присвоения значений используется синтаксис JavaScript, добавленные свойства не реагируют, а не реагируют. В настоящее время, если это свойство используется в шаблоне или функции рендеринга, это новое свойство не приведет к повторному рендерингу компонента.
Используйте $set
метод, чтобы добавить свойство к реактивному объекту, сделав его реактивным. Он принимает три параметра, а именно отзывчивый объект, имя свойства и значение свойства.
Вот простой пример:
<template>
<div>
{
{obj.newProp}}
<button @click="addProp">Add Property</button>
</div>
</template>
<script>
export default {
data() {
return {
obj: {
prop1: 'value1',
prop2: 'value2'
}
};
},
methods: {
addProp() {
this.$set(this.obj, 'newProp', 'new value');
}
}
};
</script>
В приведенном выше примере мы определяем obj
объект, который содержит два свойства , prop1
и prop2
в методе компонента addProp
используем $set
метод obj
для добавления нового свойства к объекту newProp
.
$ получить
$get
Метод используется для получения значения свойства отзывчивого объекта, он может напрямую обращаться к свойству объекта и возвращать значение свойства. $get
Метод принимает два параметра: отзывчивый объект и имя свойства.
Вот простой пример:
<template>
<div>
{
{ obj.prop1 }}
</div>
</template>
<script>
export default {
data() {
return {
obj: {
prop1: 'value1',
prop2: 'value2'
}
};
},
created() {
const prop1Value = this.$get(this.obj, 'prop1');
console.log(prop1Value); // 'value1'
}
};
</script>
В приведенном выше примере мы определяем obj
объект, который содержит два свойства , prop1
и в функции-ловушке prop2
компонента используем метод для получения значения свойства и вывода его на консоль.created
$get
prop1
Следует отметить, что при использовании методов $set
и $get
их можно использовать только на реактивных объектах, и они будут недействительны, если используются на обычных объектах.