Основные понятия Vue.js: ref() и reactive() 👊
Vue основан на концепции реактивности, как и React и Angular, что улучшает взаимодействие с пользователем.
В Vue есть два метода для объявления реактивного состояния элемента: ref() и Функции reactive().
В этой статье мы рассмотрим разницу между этими двумя функциями и вариантами их использования.
Начнем! 🤙🏼
Что такое ссылка()?
ref() — это функция, которая принимает аргумент, подобный параметру, и возвращает его, завернутый в объект ref со свойством «.value».
Это рекомендуется. способ объявить реактивное состояние.
import { ref } from "vue" const text = ref("Hello Vue!"); console.log(text) //{ value: "Hello Vue!" } console.log(text.value) //"Hello Vue!"
Для доступа к значению состояния вы должны использовать свойство .value в шаблоне JavaScript, но если вам необходимо отобразить состояние в шаблоне компонента, свойство .value не является необходимым.
<script setup> import { ref } from "vue" const text = ref("Hello Vue!"); </script> <h1>{{ text }}</h1>
Почему ссылка()?
Чтобы понять полезность метода `ref()`, необходимо знать, как Vue работает под капотом.
Когда он используется в шаблоне и меняет значение ref, Vue немедленно обнаруживает изменение и соответствующим образом обновляет DOM, это это стало возможным благодаря системе реактивности, основанной на отслеживании зависимостей.
В Vanilla JavaScript нет способа отслеживать изменения значений, но можно перехватить их с помощью методов получения и установки, когда объект включен.
Что такое реактивный()?
API reactive() — это еще один способ объявить реактивное состояние и сделать реактивным сам объект.
API reactive() создает прокси-серверы JavaScript, а Vue перехватывает все мутации и доступ ко всем свойствам.
import { reactive } from 'vue'; const state = reactive({ count: 0 });
Ограничения реактивной()
Как было сказано ранее, ref() — это рекомендуемый способ объявления реактивного состояния, поскольку API reactive() имеет некоторые ограничения:
1. Невозможно использовать примитивные значения: работает только с типами объектов.
2. Невозможно заменить весь объект: монитор реактивности Vue работает только через доступ к свойствам.
Это означает, что объявленный объект должен оставаться прежним, чтобы не потерять реактивность.
3. Деструктурировать не рекомендуется: так можно потерять отзывчивость.
Заключение
Vue предоставляет два API для реактивного состояния состояния: ref() и reactive() , причем первый вариант рекомендуется, что дополняет некоторые ограничения второго выбора.
Приятного кодирования!✨