Изучите реактивность с помощью ссылок и реактивность с помощью примеров.

В этой статье мы узнаем о реактивности с помощью API-интерфейса композиции в Vue.

Composition-API поставляется вместе с Vue 3 и устраняет некоторые ограничения api параметров в более ранних версиях Vue.

Если вы использовали Vue, то, несомненно, вы использовали option-API для создания компонентов приложения.

API-интерфейс композиции позволяет нам создавать приложения Vue с простым и поддерживаемым кодом. Чтобы обеспечить реактивность в пользовательском интерфейсе компонента и состояниях, Composition-API позволяет нам использовать два метода.

Мы можем гарантировать реактивность либо с помощью ссылки (ref), либо с помощью реактивности. Это два основных метода, которые мы можем использовать для обеспечения реактивности между пользовательским интерфейсом компонентов и состояниями.

Если вы не знакомы с API-интерфейсом композиции, ознакомьтесь с этой статьей. Это поможет вам быстро начать работу с API-интерфейсом композиции.



Реакция на ссылки

При использовании API параметров состояния внутри функции данных всегда являются реактивными. Это означает, что любое изменение состояния также будет обновляться в пользовательском интерфейсе компонентов, и это не то же самое для нас в API-интерфейсе композиции.

Чтобы гарантировать это, нам нужно задействовать refs, чтобы гарантировать эту реактивность.
Возьмем, к примеру, это небольшое приложение, которое отображает мое имя и возраст.

<template>
 <div>
 <h2>My name is {{ state.name }} aged {{ state.age }} years</h2>
 <button type=”submit” @click=”changeName”>change Name</button>
 </div>
</template>
<script>
export default {
 name: “App”,
 setup() {
 const state = {
 name: “John”,
 age: 23,
 };
function changeName() {
 state.name = “Philip”;
 }
 return { state, changeName };
 },
};
</script>

Существует прослушиватель событий, и к нему прикреплена функция changeName, которая обновит наше имя в состоянии. Если мы нажмем кнопку, имя изменится в нашем состоянии, но это изменение не отразится в пользовательском интерфейсе компонентов. Именно тогда в игру вступают ссылки, которые можно использовать для обеспечения реактивности между состоянием и пользовательским интерфейсом компонентов.

Использование ссылок

Чтобы использовать ref, мы сначала должны импортировать его из vue, иначе он не будет определен в нашем экземпляре приложения.

<template>
 <div>
 <h2>My name is {{ state.name }} aged {{ state.age }} years</h2>
 <button type=”submit” @click=”changeName”>change Name</button>
 </div>
</template>
<script>
import { ref } from “vue”;
export default {
 name: “App”,
 setup() {
 const state = ref({
 name: “John”,
 age: 23,
 });
function changeName() {
 state.value.name = “Philip”;
 }
 return { state, changeName };
 },
};
</script>

Теперь, когда мы нажмем кнопку, мы заметим, что изменение отразится и на пользовательском интерфейсе нашего компонента.

При этом мы также можем добавить директивы, такие как v-model, и это обеспечит синхронизацию состояний и пользовательского интерфейса.

Также обратите внимание, что для доступа к значениям переменных, заключенных в ref, мы должны добавить параметр .value внутри функции настройки. в противном случае к компоненту не нужно добавлять .value.

Использование реактивного

Еще один способ обеспечить реактивность - это реактивность. Как и в случае с refs, чтобы использовать reactive, нам сначала нужно импортировать его из vue, чтобы сделать его доступным в нашем приложении.

Давайте проделаем то же самое, но на этот раз с использованием реактивного.

<template>
 <div>
 <h2>My name is {{ state.name }} aged {{ state.age }} years</h2>
 <button type=”submit” @click=”changeName”>change Name</button>
 </div>
</template>
<script>
import { reactive } from “vue”;
export default {
 name: “App”,
 setup() {
 const state = reactive({
 name: “John”,
 age: 23,
 });
function changeName() {
 state.name = “Philip”;
 }
 return { state, changeName };
 },
};
</script>

Из приведенного выше фрагмента кода видно, что при доступе к значениям свойств в реактивном режиме мы просто ссылаемся на свойства напрямую, и нам не нужно добавлять .value.

Заключение

В этой статье мы увидели, как использовать refs и reactive для реактивности во vue с помощью API-интерфейса композиции.

Спасибо, что дочитали до конца, если вы найдете эту статью полезной, не стесняйтесь поделиться ею.

Дополнительная информация: