我不明白我怎么能让一个从脚本中导出的变量在模板部分起作用。
我有followed this Vue 2 stackoverflow question,但它不适合我。
Demo
以下是stackblitz上的一个简单演示:
https://stackblitz.com/edit/nuxt-using-hooks-in-script-setup-g4pctr?file=components%2FMyComponent.vue
- 脚本:
/assets/functions/test.js
- 组件:
/components/myComponent.vue
代码
// test.js
export let count = {
total: 0, // <-- make reactive in template
};
export const addCount = () => {
count.total++;
};
<script setup>
import { count, addCount } from '~/assets/functions/test';
import { ref } from 'vue';
const totalCount = ref(count);
</script>
<template>
<h1>{{ totalCount }}</h1>
<button @click="addCount()">Add+</button>
</template>
count.total
仅在保存vue-file / refresh组件后更新。
提问
有什么建议可以让导出的变量以干净的Vue 3 / Nuxt 3方式响应?
1条答案
按热度按时间w7t8yxp51#
你必须使用React系统(
ref
,shallowRef
,reactive
,shallowReactive
,triggerRef
...)使其成为React代理。