Мне интересно, как мне сбросить реактивность в настройке vuejs? (я знаю, если изменить его на ref и использовать view.value, чтобы решить эту проблему, но должен быть ответ на это для использования реактивного)
Как правильно сбросить реактивные значения Vue Composition Api
comment
Вы в этом разобрались? Тоже ищу это.
- person InfoStatus   schedule 17.04.2020
comment
@InfoStatus еще нет, но вы можете проголосовать за вопрос, чтобы дать ему больше возможностей быть увиденным другими, поэтому мы наконец получили ответ
- person SeyyedKhandon   schedule 17.04.2020
comment
Будьте осторожны, у вас есть конфликты имен с вашими переменными и именами типов. Переменные должны иметь camelCased, чтобы отделить их от ваших типов PascalCased.
- person nook   schedule 27.04.2020
Ответы (3)
Вы можете использовать Object.assign
:
setup() {
const initialState = {
name: "",
lastName: "",
email: ""
};
const form = reactive({ ...initialState });
function resetForm() {
Object.assign(form, initialState);
}
function setForm() {
Object.assign(form, {
name: "John",
lastName: "Doe",
email: "[email protected]"
});
}
return { form, setForm, resetForm };
}
Смотрите в прямом эфире на codeandbox < / а>
кредиты: взято отсюда
person
roli roli
schedule
29.04.2020
это типичный способ, и я хотел бы найти лучший ответ на эту проблему, но, как они сказали ответ в vue-next github. кажется, лучшего ответа пока нет. спасибо, что уделили этому время????
- person SeyyedKhandon; 02.05.2020
Цитата с официального сервера Vueland Discord:
"Насколько я знаю, реактивность - это старый способ, который мы используем для выполнения реактивности из классического API, поэтому для сброса значений необходимо примерно следующее:"
const myData = reactive({
foo: true,
bar: ''
})
function resetValues () {
myData.foo = true
myData.bar = ''
}
Следовательно, если вы не меняете свойства, вы сможете использовать Object.assign()
. (Поправьте меня если я ошибаюсь)
person
nook
schedule
27.04.2020
Object.assign
у меня не сработало. (Может быть, потому, что я использовал прокладку для Composition API в Nuxtjs 2?) Для тех, кто столкнулся с той же проблемой: мне пришлось использовать компактный цикл.
setup() {
const initialState = {
name: "",
lastName: "",
email: ""
};
const form = reactive({ ...initialState });
function resetForm() {
for (const [key, value] of Object.entries(initialState)) {
form[key] = value
}
}
function setForm(values = {name: "John", lastName: "Doe", email: "[email protected]"}) {
// only loop with the supported keys of initial state
for (const key of Object.keys(initialState)) {
form[key] = values[key]
}
}
return { form, setForm, resetForm };
}
person
Markus Madeja
schedule
15.02.2021
Как я могу сбросить массив при использовании активного обертывания?
- person JackChouMine; 30.03.2021