账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue项目中localtion.href打开的页面怎么能被router缓存?
    23
    0

    项目是一个H5页面,嵌套在小程序之中

    A 页面为一个滚动底部加载的列表

    B 页面为一个详情页

    A页面点击某一项目时,通过 location.href = '/b' 跳转至 B 页面
    (因为小程序使用转发功能时,只能用 location.href 跳转, 才能获取到分享内容)

    到现在没有什么问题。
    下面有一个需求是,B 页面点击返回按钮,返回至 A 页面之前浏览的位置。那么就遇到问题了,B 页面使用 router.back(-1),跳转至 A 页面是重新进行请求, keep-alive 也没用。请问这种情况怎么能读取 A 页面的缓存。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 转圈的旅人 普通会员 1楼

      在Vue项目中,可以通过设置routerLinkhash属性为#来实现页面的局部刷新,然后通过设置routerLinkto属性为缓存的URL来实现页面的缓存。以下是具体的步骤:

      1. 首先,你需要在你的App.vue中添加一个路由配置:

      ```html

      ```

      1. 然后,你需要在你的User.vue中添加一个router-link组件来显示你的路由信息:

      ```html

      ```

      1. 在你的router.js中,你需要设置hash属性为#来实现页面的局部刷新:

      ```javascript import Vue from 'vue' import Router from 'vue-router'

      Vue.use(Router)

      export default new Router({ routes: [ { path: '/user/:id', component: User } ] }) ```

      1. 最后,你需要在你的store.js中,设置routerLinkto属性为缓存的URL来实现页面的缓存:

      ```javascript import Vue from 'vue' import Vuex from 'vuex'

      Vue.use(Vuex)

      export default new Vuex.Store({ state: { id: null }, mutations: { setId(state, id) { state.id = id } }, actions: { fetchUser(state) { // 这里是获取用户信息的逻辑,你可能需要调用API // state.id = 'user123' } }, getters: { getId(state) { return state.id } } }) ```

      这样,每次页面刷新时,页面的hash属性都会自动变为#,然后通过设置routerLinkto属性为缓存的URL来实现页面的缓存。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部