【问题标题】:avoid scrolling to top after re-rendering避免重新渲染后滚动到顶部
【发布时间】:2019-09-24 08:57:59
【问题描述】:

为什么 Vuejs 在重新渲染组件后会滚动到页面顶部。它让人感觉像是在刷新页面。如何防止这种滚动并将页面固定在其位置

点击某个部分后的成像会重新渲染它的组件

这是我进行更新的一段代码,然后滚动到顶部发生

methods: {
        updateData(data) {
            let updatedCategory = data.category;
            updatedCategory = new Category(updatedCategory);
            updatedCategory.isDefault = 1;

            for (let cat in this.categories){
                if(this.categories[cat].id === updatedCategory.id){
                    Vue.set(this.categories,cat, updatedCategory);
                }
            }
        }
    },

【问题讨论】:

  • 这不应该发生,因为只有需要的部分被重新渲染并且这应该非常有效地发生。我们需要示例代码或任何复制方式。我不喜欢 steven 建议的 hacky 修复。
  • @oshell 我提供了问题中的代码

标签: vue.js


【解决方案1】:
  • 发现有滚动条的元素。
  • 在更新您的数据之前,请捕获ele.scrollTop
  • 更新您的数据。
  • nextTick 中,恢复元素的scrollTop

https://www.w3schools.com/jsref/prop_element_scrolltop.asp

【讨论】:

  • 多么好的答案!非常感谢,在所有信息中,这是确切的解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
  • 1970-01-01
  • 2022-01-23
  • 2018-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多