当前位置: 首页 > news >正文

不用付费就可以看亏亏的app天津关键词优化网站

不用付费就可以看亏亏的app,天津关键词优化网站,政府网站集群建设方案,外贸 wordpress英文最近有客户反映我们系统按条件查询完列表进入详情页后再返回列表页时页面没有展示他查询的那条数据,而是进入页面一贯会展示按无条件查询的数据,希望我们能对列表做查询缓存,那咱们就用keep-alive来实现一下 AppMain.vue include 属性绑定一个…

最近有客户反映我们系统按条件查询完列表进入详情页后再返回列表页时页面没有展示他查询的那条数据,而是进入页面一贯会展示按无条件查询的数据,希望我们能对列表做查询缓存,那咱们就用keep-alive来实现一下

AppMain.vue

include 属性绑定一个数组,数组里是打开需要缓存的路由name

<template><section class="app-main"><transition name="fade-transform" mode="out-in"><keep-alive :include="cachedViews"><router-view :key="key" /></keep-alive></transition></section>
</template>
<script>
export default {name: 'AppMain',computed: {cachedViews() {return this.$store.state.tagsView.cachedViews},key() {return this.$route.path}}
}
</script>

store文件夹下的getters.js

const getters = {visitedViews: state => state.tagsView.visitedViews,cachedViews: state => state.tagsView.cachedViews,
}
export default getters

store文件夹下的modules文件夹中创建tagsView.js文件

const state = {visitedViews: [], //所有访问过的路由参数cachedViews: [] // 需要可缓存的所有已访问路由name
}const mutations = {ADD_VISITED_VIEW: (state, view) => {if (state.visitedViews.some(v => v.path === view.path)) returnstate.visitedViews.push(Object.assign({}, view, {title: view.meta.title || 'no-name'}))},ADD_CACHED_VIEW: (state, view) => {if (state.cachedViews.includes(view.name)) returnif (!view.meta.noCache) {state.cachedViews.push(view.name)}},DEL_VISITED_VIEW: (state, view) => {for (const [i, v] of state.visitedViews.entries()) {if (v.path === view.path) {state.visitedViews.splice(i, 1)break}}},DEL_CACHED_VIEW: (state, view) => {const index = state.cachedViews.indexOf(view.name)index > -1 && state.cachedViews.splice(index, 1)},DEL_OTHERS_VISITED_VIEWS: (state, view) => {state.visitedViews = state.visitedViews.filter(v => {return v.meta.affix || v.path === view.path})},DEL_OTHERS_CACHED_VIEWS: (state, view) => {const index = state.cachedViews.indexOf(view.name)if (index > -1) {state.cachedViews = state.cachedViews.slice(index, index + 1)} else {state.cachedViews = []}},DEL_ALL_VISITED_VIEWS: state => {// keep affix tagsconst affixTags = state.visitedViews.filter(tag => tag.meta.affix)state.visitedViews = affixTags},DEL_ALL_CACHED_VIEWS: state => {state.cachedViews = []},UPDATE_VISITED_VIEW: (state, view) => {for (let v of state.visitedViews) {if (v.path === view.path) {v = Object.assign(v, view)break}}}
}const actions = {addView({ dispatch }, view) {dispatch('addVisitedView', view)dispatch('addCachedView', view)},addVisitedView({ commit }, view) {commit('ADD_VISITED_VIEW', view)},addCachedView({ commit }, view) {commit('ADD_CACHED_VIEW', view)},delView({ dispatch, state }, view) {return new Promise(resolve => {dispatch('delVisitedView', view)dispatch('delCachedView', view)resolve({visitedViews: [...state.visitedViews],cachedViews: [...state.cachedViews]})})},delVisitedView({ commit, state }, view) {return new Promise(resolve => {commit('DEL_VISITED_VIEW', view)resolve([...state.visitedViews])})},delCachedView({ commit, state }, view) {return new Promise(resolve => {commit('DEL_CACHED_VIEW', view)resolve([...state.cachedViews])})},delOthersViews({ dispatch, state }, view) {return new Promise(resolve => {dispatch('delOthersVisitedViews', view)dispatch('delOthersCachedViews', view)resolve({visitedViews: [...state.visitedViews],cachedViews: [...state.cachedViews]})})},delOthersVisitedViews({ commit, state }, view) {return new Promise(resolve => {commit('DEL_OTHERS_VISITED_VIEWS', view)resolve([...state.visitedViews])})},delOthersCachedViews({ commit, state }, view) {return new Promise(resolve => {commit('DEL_OTHERS_CACHED_VIEWS', view)resolve([...state.cachedViews])})},delAllViews({ dispatch, state }, view) {return new Promise(resolve => {dispatch('delAllVisitedViews', view)dispatch('delAllCachedViews', view)resolve({visitedViews: [...state.visitedViews],cachedViews: [...state.cachedViews]})})},delAllVisitedViews({ commit, state }) {return new Promise(resolve => {commit('DEL_ALL_VISITED_VIEWS')resolve([...state.visitedViews])})},delAllCachedViews({ commit, state }) {return new Promise(resolve => {commit('DEL_ALL_CACHED_VIEWS')resolve([...state.cachedViews])})},updateVisitedView({ commit }, view) {commit('UPDATE_VISITED_VIEW', view)}
}export default {namespaced: true,state,mutations,actions
}

最后

可以找个组件试一下,我这边已经实现了,效果可以自己去印证一下

export default {// 组件里一定要加上这个name,如果不需要缓存那就可以不要这个// 这个name一定要写对,要和定义的路由name一样// 如果不知道是什么可以在ADD_CACHED_VIEW打印一下view.namename: "Menu",
}
http://www.dt0577.cn/news/18789.html

相关文章:

  • 网站建设工作进度哪有恶意点击软件买的
  • 沈阳做网站优化的公司哪家好seo技术培训
  • 网站分站如何做陕西网络推广介绍
  • vps wordpress cpu占用过高郑州seo外包顾问热狗
  • 做党建需要关注网站seo推广有哪些
  • 聊城网站建设lcbywlseo优化排名易下拉用法
  • 门户网站是如何做引流的百度推广后台登录首页
  • 石家庄专业模板网站制作价格系统优化工具
  • 衢州建筑加固哪家好太原建站seo
  • 宽带动态ip如何做网站访问营销网站制作公司
  • wordpress分类显示图片百度搜索引擎关键词优化
  • 自己做的网站不满屏惠州seo关键词
  • 唐山自助建站模板搜索引擎推广培训
  • 辽宁城乡建设部网站首页肇庆网站制作软件
  • 图书购物网站开发总结青岛最新消息
  • 软件项目外包网优化营商环境个人心得
  • 做网站表格单边框标记公众号运营收费价格表
  • 网站开发多久完成亚马逊查关键词搜索量的工具
  • 网站页尾版权湖南正规seo公司
  • 深圳网站建设公司信息上海seo
  • dede做的网站弹广告潍坊网站建设平台
  • 广州做网站比较有名的公司广告公司图片
  • 做水印的网站电子商务专业就业方向
  • 海报设计模板网站郑州网站建设最便宜
  • 做的好的h游戏下载网站南京seo培训
  • 嘉定西安网站建设平台优化是什么意思
  • 公司网站手机版google推广seo
  • 网站中转页优化大师win10
  • 网站制作帐户设置宁波seo智能优化
  • 提交网站地图太原网站建设方案优化