nuxt ssr服务器渲染报错
报错内容:
F:nuxtnuxt-appuk-uinode_modules_vue@2.5.16@vuedistvue.runtime.esm.js:587 [Vue warn]: The
client-side rendered virtual DOM tree is not matching server-rendered content. This is likely
caused by incorrect HTML markup, for example nesting block-level elements inside <p>, or missing
<tbody>. Bailing hydration and performing full client-side render.
##
直接刷新界面是不会报错就是登录之后跳回当前首页就会报这个错。
代码片段如下。
//配置全局css
css: [
{ 'src': '~/assets/css/base.scss', lang: 'scss' },
'element-ui/lib/theme-chalk/index.css',
],
//加载
loading: { color: '#3B8070' },
//配置实例化之前需要运行的插件
plugins: [
{ src: '~/plugins/config' },
{ src: '~/plugins/token' },
{ src: '~/plugins/http' },
{ src: '~/plugins/element-ui', ssr: true },
{ src: '~/plugins/swiper' },
],
//配置应用的源码目录路径
srcDir: 'src/',
//配置在自动生成的 vendor.bundle.js 文件中添加一些模块
build: {
vendor: [
'axios',
'~/plugins/element-ui',
'~/plugins/swiper',
'~/plugins/config',
'~/plugins/crypto',
'~/plugins/http',
'~/plugins/token',
'~/plugins/utils',
'~/plugins/validate'
],
代码处理:
beforeMount: function() {
var _this = this;
var init = getSession('init');
if (init == null || init == undefined || init == '') {
http.get('login/is-login').then(function(res) {
setStore('islogin', res.islogin);
setSession('init', 1);
if (res.islogin == 1) {
debugger;
var strPhone = _this.$store.state.user.phone;
_this.isLoginNo = true;
}
});
} else {
var islogin = getStore('islogin');
if (islogin == 1) {
debugger;
_this.isLoginNo = true;
var userinfo = getStore('userinfo');
_this.$store.commit('user/SET_LOGIN');
_this.$store.commit('user/SET_USER', userinfo);
var strPhone = _this.$store.state.user.phone;
}
}
},
如果islogin == 1就是登录状态在本地只是报这个警告。运行项目完全没问题。但是在线上webpack打包后。登录后就会报另一个错误。程序就完全崩溃了。登录之前是好的,登录之后报错如下:
请教大家是什么原因呢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我换成mounted这个钩子函数就没有报下面这个错了。