怎麼取數據?
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注意事項前端