vue切换数据更新但是页面不更新问题

有三类数据,一开始是拿到全部数据,前端通过点击切换分类名称通过参数过滤显示对应的数据;

本来需求很简单,问题就是切换的时候数据处理逻辑以及最终数据结果都是正确的,但是Dom显示的内容一直都不更新,其中之前v-lazy懒加载的图片换成了:src,发现图片是可以正常切换,但是别的数据都没变,试了网上this. s e t 、 或 者 强 制 更 新 t h i s . set、或者强制更新this. setthis.forceUpdate()都不管用,和领导两个人各种办法试了半个小时都找不到原因,后来发现了一直忽视的一个报错,如图:
在这里插入图片描述
然后发现这个报错是谷歌浏览器翻译报的错,发现了之前不知道什么时候设置的浏览器页面翻译,如图:
在这里插入图片描述
瞬间感觉自己蠢哭了,才发现是vue的数据处理和浏览器的翻译处理冲突出了问题,数据问题算是解决,再后来把图片懒加载复原,发现图片无法正常切换,通过百度给img标签加上个key属性完美解决

为了记录一下没遇到过的问题,可能大部分人也遇不到

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue中,页面切换时双向绑定数据缓存可以通过以下几种方式实现: 1. 使用keep-alive组件:keep-alive组件可以将被包含的组件缓存起来,当组件被激活时,会从缓存中直接渲染,而不是重新创建。这样就可以保留组件状态,包括双向绑定的数据。 例如,可以在App.vue中使用keep-alive组件包裹router-view组件: ``` <template> <div id="app"> <keep-alive> <router-view v-if="$route.meta.keepAlive"></router-view> </keep-alive> <router-view v-if="!$route.meta.keepAlive"></router-view> </div> </template> <script> export default { name: 'App', components: {}, mounted() { console.log('App mounted.') } } </script> ``` 在路由配置中,可以通过meta字段指定哪些组件需要缓存: ``` const routes = [ { path: '/', name: 'Home', component: Home, meta: { keepAlive: true } }, { path: '/about', name: 'About', component: About, meta: { keepAlive: false } } ] ``` 2. 使用Vuex:Vuex是Vue的状态管理库,可以将组件的状态保存在全局的store中,从而实现数据的共享和缓存。 例如,在store.js中可以定义一个名为app的模块,用于保存应用的状态: ``` import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ modules: { app: { state: { count: 0 }, mutations: { increment(state) { state.count++ } } } } }) ``` 在组件中可以通过this.$store访问store中的数据和方法: ``` <template> <div> <p>Count: {{ count }}</p> <button @click="increment">Increment</button> </div> </template> <script> export default { name: 'MyComponent', computed: { count() { return this.$store.state.app.count } }, methods: { increment() { this.$store.commit('app/increment') } } } </script> ``` 通过Vuex实现数据缓存的方式适用于需要在多个组件间共享数据的场景。 以上两种方式都可以在Vue中实现页面切换时双向绑定数据缓存,具体使用哪种方式取决于实际需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值