import Vuex from 'vuex'
let store = () => new Vuex.store({
state: {
token: '' },
mutations: {
setToken (state, token) {
state.token = token
}
},
actions: {
nuxtServerInit({ commit}, { req ,app}) {
let params = app.context.params
let cookie = req,headers.cookie commit('setToken ', cookie.token) }
}
})
完成了一大半了
在页面上就可以直接获取store.state的数据提前在服务器渲染了。
你以为这样就完了 然后发现任何时候都要小心异步获取如果要等待数据 就必须用
async await
最后一个绝招 必须告诉你们了 页面seo的时候底部会出现
就会发现源代码里面有一串这样的代码window.__NUXT__=(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,$,aa, 等等代码
怎么隐藏呢 我不知道 我最后用了简单粗暴方法
找到这个文件 直接搜最后文件就能找到 \node_modules\nuxt\node_modules@nuxt\core\node_modules@nuxt\vue-renderer\dist\vue-renderer.js
// 注释代码下面三行代码
APP += ``;
hash.update(serializedSession);
cspScriptSrcHashes.push(`'${csp.hashAlgorithm}-${hash.digest('base64')}'`);
重新编译 完毕! 希望领导能通过我的修改。