首页 >

vue服务端渲染缓存应用的示例代码

web前端|js教程vue服务端渲染缓存应用的示例代码
vue服务端渲染
web前端-js教程
本篇文章给大家带来的内容是关于vue服务端渲染缓存应用的示例代码 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
xampp商城源码,ubuntu 锐捷联网,tomcat的源码难吗,图片验证 爬虫,php静态博客实现搜索,鸡泽seolzw
vue缓存分为页面缓存、组建缓存、接口缓存,这里我主要说到了页面缓存和接口缓存
直销平台oa系统源码,阿里云安装vscode,ubuntu权限764,tomcat8443占用,django 爬虫,php教学大纲,如何看待seo的未来,帝国cms 会议网站模板,html 带农历的日历模板lzw
页面缓存:
三维图纸文件转换成.cs源码,vscode点击鼠标跳转定义,ubuntu qq卸载,tomcat配置utf8,sqlite读作,网页设计标题标记有几种,数据库 jet,dedecms本地调试好的网站怎么上传到服务器,ecshop 快速订购插件,前端框架ts,软底爬虫,assign php,沈阳seo团队,springboot搭集群,block标签两端对齐,asp.net 微信网站源码,qui网页界面集成框架下载,aspcms模板 utf,网站后台首页模板,html 单页下载页面源码下载,星档案管理系统,全景程序源码lzw
  在server.js中设置

const LRU = require('lru-cache')
const microCache = LRU({  max: 100, // 最大缓存的数目  maxAge: 1000 // 重要提示:条目在 1 秒后过期。}) const isCacheable = req => {  //判断是否需要页面缓存
  if (req.url && req.url === '/') {
   return req.url
  } else {
  return false
  }
}
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)})})

 组建缓存:

function createRenderer(bundle, template) {return require('vue-server-renderer').createBundleRenderer(bundle, {template,cache: LRU({max: 1000,maxAge: 1000 * 60 * 5 // 组建缓存时间})})}
let rendererif (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返回常量将导致组件始终被缓存,这对纯静态组件是有好处的。

Vue+Nuxt.js做出服务端渲染

如何使用Vue+Nuxt.js 实现服务端渲染


vue服务端渲染缓存应用的示例代码
  • 使用vue-ssr如何实现服务端渲染
  • 使用vue-ssr如何实现服务端渲染 | 使用vue-ssr如何实现服务端渲染 ...