怎么取数据?
server-index.js
中, 增长以下代码:Vue.axios.get('http://localhost:5000/data').then((response) => { // 获取数据 const list = response.data.data.liveWodList // 把数据存到Vuex里面 store.commit(LIST.GET_DATA, list) // 把state存放到context中 context.state = store.state resolve(app) })
/src/index.js
(也就是client的入口文件中), 增长以下代码:if (window.__INITIAL_STATE__) { store.replaceState(window.__INITIAL_STATE__) }
编译
webpack
的插件vue-ssr-webpack-plugin
来生成build/vue-ssr-bundle.json
文件, webpack配置文件以下:plugins: [ new VueSSRPlugin({ filename: './build/vue-ssr-bundle.json' }) ]
/server.js
中咱们动态的读取build/vue-ssr-bundle.json
, 生成html字符串, 返回到前端. 这里咱们会用到createBundleRenderer
函数的别外一个参数, 该方法的第一个参数是上面的bundle.json
文件, 第二个参数是一个对象, 咱们用的是{template:'xxx'}
, 这个template的值为经过Client打包生成的HTML文件, 再经过node读取, 传递到参数中, 注意:该HTML必须包含<!--vue-ssr-outlet-->
, 这个createBundleRenderer
函数把这行代码替换成HTML.Vue-ssr
就搭建完成了!!Vue-SSR系列目录
从零开始搭建vue-ssr系列之二:纯client端渲染以及webpack2+vue2注意事项前端