@Jussss92

Почему значение в composables не реактивно?

Привет.
Я написал примитивную composables функцию.

import { ref } from 'vue'

export default function useVariablesSelectedMenu() {
	const totalActive = ref(0)

	// Функция для обновления переменной
	const setColumnActivePages = (newValue: number) => {
		totalActive.value++
	}

	return {
		setColumnActivePages,
		totalActive,
	}
}


Далее в компоненте я импортирую данную функцию и вывожу значение totalActive в template
import useVariablesSelectedMenu from '../composables/selectedMenu'
const { totalActive } = useVariablesSelectedMenu()


Оборачивал возвращаемое значение в toRefs, но оно все равно не реактивно.
В другом компоненте я вызываю метод setColumnActivePages там все отрабатывает значение увеличивается, но не в компоненте где использую totalActive
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
XanXanXan
@XanXanXan
Потому что в каждом компоненте при вызове useVariablesSelectedMenu создаётся своя независимая реактивная переменная totalActive.

Если нужно глобальное состояние, то totalActive нужно вынести за пределы useVariablesSelectedMenu и экспортировать отдельно.

Тогда везде, где используется useVariablesSelectedMenu, значение totalActive будет реактивным и одинаковым.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы