easy-team / egg-view-vue-ssr

Egg Vue Server Side Render (SSR) Plugin
https://easyjs.cn/egg-vue
MIT License
95 stars 13 forks source link

SSR时,全局组件Vue.component注册,如何preFetch数据 #10

Closed luoyang125024608 closed 5 years ago

luoyang125024608 commented 6 years ago

在egg-vue那个项目里layout组件header或者Footer,比如header的里导航从数据库取,那么如何preFetch

SSR时,全局组件Vue.component注册,如何preFetch数据

hubcarl commented 6 years ago

@luoyang125024608 header 这种公共组件有两种方案:

建议用第一种方案

luoyang125024608 commented 6 years ago

@hubcarl 我目前是node render时,把headerData放进要render的数据里,然后页面实例获取到数据后,把headerData放在this.$root上。然后组件header再从this.$root.headerData取数据。

希望能在server.js和client.js上处理数据。数据不用穿过页面再进入组件。

luoyang125024608 commented 6 years ago

@hubcarl 而且以目前我这种做法,我每个页面render的时候,都要关心header和footer的数据。而不是只要引入组件,让组件自己去获取数据就好了

hubcarl commented 6 years ago

@luoyang125024608 你可以在 header 和 footer 的 component 的 beforeCreate 或 created 事件中处理数据

luoyang125024608 commented 6 years ago

@luoyang125024608 你可以在 header 和 footer 的 component 的 beforeCreate 或 created 事件中处理数据

关键就是怎么处理呀。想可以增加一个如window.MY_INITIAL_STATE,来同步组件数据。

我不使用vuex,思路是尽量用后端的能力

luoyang125024608 commented 5 years ago

最后我还是用了vuex来管理数据。但是没有用vue-router。