Читая документацию по API композиции для Vue 3, я не совсем понял, как новая композиция API работает. Не могли бы вы объяснить, куда делась функция data()
и если она больше не используется, что использовать вместо нее?
Функция Vue 3 Composition API data ()
Ответы (2)
В новом Composition API все переменные, которые вы ранее определили в data()
, просто возвращаются из вашей setup()
функции как обычные переменные с реактивными значениями. Например, компонент Vue 2.0, который имеет такую функцию данных:
data() {
return {
foo: 1,
bar: { name: "hi" }
}
}
становится этой setup()
функцией в Vue 3:
setup() {
const foo = ref(1);
const bar = reactive({ name: "hi" });
return { foo, bar }
}
Помощник ref
обертывает значение, не являющееся объектом, для реактивности, а reactive
обертывает объект. Это раскрывает основные принципы Vue более четко, чем старый способ, когда упаковка происходила волшебным образом за кулисами, но в остальном будет вести себя так же. Что мне лично нравится в этом, так это то, что ваша setup()
функция может создавать ваш объект на ходу, сохраняя при этом связанные вещи вместе, позволяя ему рассказывать связную историю и не требуя прыжков по разным разделам.
setup()
в API параметров, например, с помощью this.foo
.
- person volume one; 03.06.2021
Композиция - это новая функция, поставляемая с Vue 3, и в качестве плагина для Vue 2 она не заменяет старый параметр api, но их можно использовать вместе в одном компоненте.
Api композиции по сравнению с вариантом api:
- Соберите функциональные возможности логики в кусочки логики многократного использования.
- Используйте один вариант: функция
setup
, которая выполняется перед созданием компонента после разрешения свойств и служит точкой входа для API композиции. - Определите свой старый параметр данных как
ref
илиreactive
свойства - вычисляется и смотреть определяется как:
watch(...,()=>{...})
илиcomputed(()=>{...})
- Методы определены как простые функции javascript.
setup
используется вместо созданного хука и имеет в качестве параметров _7 _ иcontext
- Такие хуки, как
mounted
, можно использовать какonMounted(()=>{...})
,learn more
.
data
как функцию, а не просто объект. - person Matt Ellen   schedule 28.09.2020data
в том, что это не может быть простой объект, это должна быть функция. - person Matt Ellen   schedule 28.09.2020data
всегда должен был быть функцией (по крайней мере, в Vue 2), и хотя Vue 3 по-прежнему поддерживает API параметров, который включает методdata
, API композиции не включаетdata()
. - person Robert Nubel   schedule 28.09.2020data
должно было быть только функцией вcomponents
в основном приложении, это может быть простой объект. - person Matt Ellen   schedule 28.09.2020