vue.js - 如何在合成 api 中设置步骤形式?
问题描述
我正在尝试使用组合 api 创建一个多步骤表单。在 vue 2 中,我曾经这样做过
email: {
get() {
return this.$store.state.email
},
set(value) {
this.$store.commit("setEmail", value)
}
},
现在我有了自己的商店,我将这个计算属性传递给我的组件stEmail: computed(() => state.email)
。我如何在设置中实际使用它?
我正在尝试做这样的事情,但完全不起作用。
let setMail = computed(({
get() {
return stEmail;
},
set(val) {
stEmail.value = val;
}
}))
const state = reactive({
email: "",
})
export function useGlobal() {
return {
...toRefs(state),
number,
}
}
还是现在有更好的方法来制作多步表格?
解决方案
您可以对 Composition API 执行相同的操作。useStore
从vuex
包和computed
从导入vue
:
import { computed } from 'vue';
import { useStore } from 'vuex';
然后在你的setup()
函数中使用它,如下所示:
setup: () => {
const store = useStore();
const email = computed(() => ({
get() {
return store.state.email;
},
set(value) {
store.commit("setEmail", value);
}
});
return { email };
}
如果你想避免使用vuex
,你可以定义变量ref()
并将它们导出到一个常规的 JavaScript 文件中。这将使您的状态可在多个文件中重用。
state.js
export const email = ref('initial@value');
Form1.vue/Form2.vue
<template>
<input v-model="email" />
</template>
<script>
import { email } from './state';
export default {
setup() {
return { email };
}
};
</script>
推荐阅读
- r - 如何使用两组因子变量填充ggplot?
- java - 具有分布式失效的本地缓存 (Java/Spring)
- pandas - 在 Alpine Linux 上为 PyPy 安装 Pandas?
- google-apps-script - 使用谷歌表格中的数据动态创建谷歌表单问题
- javascript - 客户端 Google OAuth 2.0 在 Instagram 的网络视图中停滞不前
- gensim - 通过指定单词/主题分布来创建 Gensim 模型
- json - 如何动态地将值传递给组件
- sql - EFCore 模型无效。以多种方式引用另一个类似乎是问题所在?
- macos - Apache多个虚拟主机指向不同的目录
- java - 如何从同一个 Java 项目的 jar 文件中运行 ant 命令?