问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vue.js渲染失败问题,刷新后才成功,不知道有没有人遇到过

发布网友 发布时间:2022-04-24 13:06

我来回答

3个回答

懂视网 时间:2022-04-22 18:52

本篇文章给大家带来的内容是关于vue服务端渲染缓存应用的示例代码 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

vue缓存分为页面缓存、组建缓存、接口缓存,这里我主要说到了页面缓存和接口缓存

页面缓存:

  在server.js中设置

const LRU = require('lru-cache')
const microCache = LRU({
 max: 100, // 最大缓存的数目
 maxAge: 1000 // 重要提示:条目在 1 秒后过期。
})
 
const isCacheable = req => {
 //判断是否需要页面缓存<br>  if (req.url 
&& req.url === '/') {<br>    return req.url<br>  } 
else {<br><em id="__mceDel"><em id="__mceDel"> 
  return false<br></em></em><em 
id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em 
id="__mceDel"><em 
id="__mceDel">  }<br></em></em></em></em></em><em
 id="__mceDel">}</em>
app.get('*', (req, res) => {
const cacheable = isCacheable(req)
  if (cacheable) {
    const hit = microCache.get(req.url)     
    if (hit) { 
       return res.end(hit)  
       } 
 }
const errorHandler = err => {
 if (err && err.code === 404) {
 // 未找到页面
 res.status(404).sendfile('public/404.html');
 } else {
 // 页面渲染错误
 res.status(500).end('500 - Internal Server Error')
 console.error(`error during render : ${req.url}`)
 console.error(err)
 }
}
const context = {
 title: 'vue',
 keywords: 'vue-ssr服务端脚手架',
 description: 'vue-ssr-template, vue-server-renderer',
 version: v,
 url: req.url,
 cookies: req.cookies
}
renderer.renderToString(context, (err, html) => {
 if (err) {
 return errorHandler(err)
 }
 res.end(html)
 microCache.set(req.url, html)
})
})
<em id="__mceDel">
</em>

 组建缓存:

function createRenderer(bundle, template) {
return require('vue-server-renderer').createBundleRenderer(bundle, {
template,
cache: LRU({
max: 1000,
maxAge: 1000 * 60 * 5 // 组建缓存时间
})
})
}
let renderer
if (isProd) {
 // 生产环境使用本地打包文件来渲染
 const bundle = require('./output/vue-ssr-bundle.json')
 const template = fs.readFileSync(resolve('./output/index.html'), 'utf-8')
 renderer = createRenderer(bundle, template)
} else {
 // 开发环境使用webpack热更新服务
 require('./build/dev-server')(app, (bundle, template) => {
 renderer = createRenderer(bundle, template)
 })
}

 要缓存的组建

export default {
name: 'Home',
title() {
return {
title: 'vue-ssr',
keywords: 'vue-ssr服务端脚手架, home',
description: 'vue-ssr-template, vue-server-renderer, home'
 }
 },
created() {
 },
computed: {},
asyncData({ store }) {},
methods: {},
serverCacheKey: props => props.id
}

serverCacheKey 返回的 key 应该包含足够的信息,来表示渲染结果的具体情况。如果渲染结果仅由 props.item.id 决定,则上述是一个很好的实现。但是,如果具有相同 id 的 item 可能会随时间而变化,或者如果渲染结果依赖于其他 prop,则需要修改 serverCacheKey 的实现,以考虑其他变量。如果 serverCacheKey返回常量将导致组件始终被缓存,这对纯静态组件是有好处的。

热心网友 时间:2022-04-22 16:00

我遇到的问题是因为命名冲突,这个项目大范围使用了bootstrap的模态组件,我直接用的modal-content类作为el,所以再次有模态组件调用的时候就会出现冲突。
其实是个很基础的问题,只是没注意忽略了,问题一直存在了半个月,我很羞愧。
各位回答的都很好,虽然并没有解决我的问题,但是总结了很多vue的基础,对于我使用vue跟前端开发都有非常大的帮助,可以说是获益良多,感谢至极,我将总结合并一下。
1.使用框架,就用框架的规则,使用生命周期函数来做数据的更改,处理函数写在method里面使用vm.函数调用。
2.ajax是异步的,不到万不得已不要使用同步,因为同步真的很阻塞,亲身体会。比如有5个回填数据的输入框,第二个输入框使用同步,那么第二个没完成之前下面输入框的全是空的,这样是不是很影响体验?
3.ajax方式get有缓存,post没有,注意使用方式。

热心网友 时间:2022-04-22 17:18

详细说一下问题,我最近写的时候遇到一个坑就是不能在组件还没ready的时候做页面跳转。不然跳转的页面也渲染失败。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
土狗一般多大开始懂人性 如何训练 小土狗怎么训练才听话 新手训狗的好方法 跑跑卡丁车故事模式哪一关还海盗船长(人物)奖励的,骨灰玩家说下._百 ... 跑跑卡丁车手游被遗忘的炮塔的宝藏在哪_跑跑卡丁车手游被遗忘的炮塔的... 跑跑卡丁车手游在被遗忘的炮塔附近搜寻宝藏怎么做?遗忘炮塔宝藏攻略... 跑跑卡丁车手游被遗忘炮塔宝藏在哪 炮塔附近搜寻宝箱位置详解-新手攻略... 跑跑卡丁车被遗忘的炮塔附近宝藏在哪里_跑跑卡丁车被遗忘的炮塔附近宝藏... 跑跑卡丁车手游在遗忘的炮塔附近搜寻宝藏在哪 遗忘炮塔宝藏位置详解 迅捷路由器使用问题 ...MATLAB7.0的,程序总是在打开后一会,就自动关闭了。希望能帮忙哦,感... vue使用props或者vuex传值,如何渲染到表单中 怎么用vue.js循环渲染后台数据 vue前端异步与页面渲染问题:怎样让子异步函数完成后页面再渲染 vue,渲染函数,比模板更高效吗? vue怎么渲染html 在vue中,渲染函数和函数式组件的区别在哪 在南昌如何考取心理咨询师资格证书 南昌哪里有心理咨询师培训 南昌哪里有比较靠谱心理咨询机构,我想看心理医生 南昌哪个心理咨询中心比较好?费用大概需要多少? 南昌哪里有好的心理咨询师三级正规培训 南昌市有心理咨询师有免费的吗? 南昌有什么好的心理咨询师或者心理医生吗 急求 南昌哪有比较知名的心理咨询师或机构? 请问南昌哪里有比较好的心理咨询师?可以催眠的那种? 目前南昌开办心理咨询中心需要哪些条件?自己最近去办过的最好,只有原始的20分! 心理咨询师有什么报名条件呢? 南昌哪里有比较好的心理咨询师 南昌的心理咨询师报名费用大概多少 报考心理咨询师有什么学历要求吗? 在vue中获取数据并渲染页面时出现问题,数据读取到了,但页面渲染不出来... 怎么把文字复制到excel表格 如何把表格中的文字复制到excel 怎么把许多行文字粘贴到excel的每行里 word中的文字怎么黏贴到excel表格中 怎么把一大串文字复制到excel的表格中 怎么把TXT文本的文字复制到EXCEL表格里 谢谢大家帮我看一下我的手机内存还剩余多少? 怎么看我的电脑内存还有多少? 怎样查我手机用了多少内存,还剩多少内存? 我的内存到底剩下多少? 我电脑多大内存? 怎么看才知道我的电脑内存还有多少? 我的手机还有多少内存? 我的内存到底有多少? 我想知道我的内存有多大剩余空间,该怎么查? 大家帮忙看下,我的电脑内存还有多少。谢了 我手机内存还有10多G,为什么手机老是提醒我内存不足呢 我电脑的剩余内存是多少? 我手机剩多少内存了