vue.js - 从数据库数据动态创建 Vuex getter
问题描述
我正在尝试根据数据库数据动态创建 Vuex getter。
数据库表中有两列很重要。一列是 getter 名称,第二列是 getter 内容。getter 将引用的状态值将在创建时已加载到存储中,因此这不是问题。
我已经阅读了有关创建模块和注册它们的内容,但是在所有情况下,我都看到它们仍然必须进行硬编码。有没有办法使这项工作?
我还在考虑是否最好将 Vuex 模块中的 getter 及其关联的状态值作为字符串存储在数据库中,然后将它们取出并注册。
你会采取什么方法?
提前致谢。
乔
解决方案
对于处于类似情况的任何人,我最终导入了一个空的 vuex 模块并将其缓存到一个变量中,分配新的 getter 函数然后注册它,类似于这样:
import emptyVuexModule from 'emptyModule'
let cachedModule = emptyVuexModule
cachedModule.getters[getterName] = new Function(['state'], getterContents)
this.$store.registerModule(cachedModule)
我不知道这是否是最好的解决方案,而且我知道使用 new Function 会带来安全问题,但它可以满足我的需求。
推荐阅读
- javascript - 为什么我无法访问在我的代码后面修改的客户端字段?
- jquery - Add divs with Django template tags on button press
- rust - Rust 错误处理(我有一个 utf8error,我想返回 io::Result)
- mysql - Mysql平均数据间隔不超过3分钟
- java - 如何让 CRUD 的删除方法在 Spring 项目上工作
- spring - 使用 Feign 客户端发布表单 URL 编码的数据时出现错误请求
- python - 使用 Onchange 更新 one2many 字段。奥多 14
- flutter - Flutter - 在 StatelessWidget 的构建方法中推送导航器路由
- javascript - 开关盒总是返回未定义
- java - java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:用户未映射