vue服务端渲染页面缓存和组件缓存的介绍(代码)
本篇文章给大家带来的内容是关于vue服务端渲染页面缓存和组件缓存的介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
vue缓存分为页面缓存、组建缓存、接口缓存,这里我主要说到了页面缓存和组建缓存
页面缓存:
在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) // 设置当前缓存页面的内容 }) })
组建缓存:
在server.js中设置如下:
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返回常量将导致组件始终被缓存,这对纯静态组件是有好处的。
以上是vue服务端渲染页面缓存和组件缓存的介绍(代码)的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在 Vue.js 中使用 Bootstrap 分为五个步骤:安装 Bootstrap。在 main.js 中导入 Bootstrap。直接在模板中使用 Bootstrap 组件。可选:自定义样式。可选:使用插件。

可以通过以下步骤为 Vue 按钮添加函数:将 HTML 模板中的按钮绑定到一个方法。在 Vue 实例中定义该方法并编写函数逻辑。

Vue.js 中的 watch 选项允许开发者监听特定数据的变化。当数据发生变化时,watch 会触发一个回调函数,用于执行更新视图或其他任务。其配置选项包括 immediate,用于指定是否立即执行回调,以及 deep,用于指定是否递归监听对象或数组的更改。

Vue.js 返回上一页有四种方法:$router.go(-1)$router.back()使用 <router-link to="/"> 组件window.history.back(),方法选择取决于场景。

NetflixusesAcustomFrameworkcalled“ Gibbon” BuiltonReact,notReactorVueDirectly.1)TeamExperience:selectBasedAsedonFamiliarity.2)ProjectComplexity:vueforsimplerprojects,vueforsimplerprojects,reactforforforecomplexones.3)cocatizationNeedsneeds:reactofficatizationneedneeds:reactofferizationneedneedneedneeds:reactoffersizatization needeffersefersmoreflexiblesimore.4)ecosyaka

Vue 多页面开发是一种使用 Vue.js 框架构建应用程序的方法,其中应用程序被划分为独立的页面:代码维护性:将应用程序拆分为多个页面可以使代码更易于管理和维护。模块化:每个页面都可以作为独立的模块,便于重用和替换。路由简单:页面之间的导航可以通过简单的路由配置来管理。SEO 优化:每个页面都有自己的 URL,这有助于搜索引擎优化。

Vue.js 遍历数组和对象有三种常见方法:v-for 指令用于遍历每个元素并渲染模板;v-bind 指令可与 v-for 一起使用,为每个元素动态设置属性值;.map 方法可将数组元素转换为新数组。

在 Vue.js 中引用 JS 文件的方法有三种:直接使用 <script> 标签指定路径;利用 mounted() 生命周期钩子动态导入;通过 Vuex 状态管理库进行导入。
