javascript - 如何在不调用API的情况下设置Vuex数据?

标签 javascript php vue.js vuex

我正在运行 PHP 后端,并且已经拥有了我想要在 Vuex 存储中设置的必要数据。通常,如果我已经有了这些数据并且只需要在组件中使用它,我只需 html_encodejson_encode 该数据并将其作为 prop 传递。

这要求我不必对我 View 中已有的数据进行 API 调用。

目前我正在考虑做这样的事情,但这感觉很丑陋,因为我在这里使用全局变量:

在我看来:

<script>
    window.searchContext = {{ $searchContext }};
</script>

然后在我的主 Vue 实例所在的 app.js 中:

data: {
   searchContext: window.searchContext
}

一旦我的主 Vue 实例中有数据,我就可以填写我的 Vuex 存储。通过使用类似的东西:

created() {
    this.$store.commit('datepicker/arrival', this.searchContext.arrival);
    this.$store.commit('datepicker/arrival', this.searchContext.arrival);
    // etc.
}

是否有更好的模式来做这样的事情?我可能想得太多了,因为这可能工作得很好......

最佳答案

首先,你目前所做的一切都很好。它看起来很丑,但完全没问题。但是,一旦读取该数据,请从 window 对象中删除该数据。

您基本上想做的是SSR - 服务器端渲染。一旦开始预渲染重要数据,您应该切换到官方 SSR 解决方案。

但是做 SSR 需要 Node.js,而你目前有 PHP 后端。 SSR本身相当复杂,只有在需要时才选择它。它使构建堆栈变得复杂。

了解更多关于Vue SSR的信息.

关于javascript - 如何在不调用API的情况下设置Vuex数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51514763/

相关文章:

javascript - 如何更改其中包含无效字符的元素的属性?

php - 如何将 php 发送邮件表单与图像点击列表结合起来?

vue.js - 视觉 : Keep the same message until component is completely hidden

laravel - 我的 Nuxt 项目应该只使用 : SSR, SPA 还是 SSG 哪一个?

javascript - 以 count 作为值迭代对象

javascript - 稀疏数组在 JavaScript 中有哪些用例?

javascript - 选择不同单选按钮时如何更改段落内容

javascript - 无法连接到 wss://(建立连接时出错:net::ERR_CONNECTION_CLOSED)

javascript - file_put_content 数组结构不起作用

php - 根据其值从数组中删除元素?