前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mpvue编辑页返回前页面时编辑页输入的数据不自动清空的bug

mpvue编辑页返回前页面时编辑页输入的数据不自动清空的bug

作者头像
薛定喵君
发布2020-01-08 10:28:30
1.1K0
发布2020-01-08 10:28:30
举报
文章被收录于专栏:薛定喵君薛定喵君薛定喵君

记录下mpvue框架下做数据编辑页时出现的bug处理方法

结合网上搜索到的一些处理方法在此重新整理一番

# 现象

步骤 1.编辑页面输入数据 2.点击左上角返回按钮 3.再次进入编辑页面 结果发现第1步输入的数据仍然显示在页面上,数据没有被清空

# 解决方法

# 编辑数据存在于非tab页的情况

网友的方法 1.mounted时执行重置

mounted () {
	Object.assign(this.$data, this.$options.data())
}

2.onLoad时执行重置

onLoad () {
	Object.assign(this.$data, this.$options.data())
}

测试有效,可以发现编辑页的数据被成功重置

# 编辑数据存在于tab页的情况

博主最近做的页面是登录后跳转首页(tab页),首页会显示数据列表及一个添加按钮(点击后弹出编辑模态框) 此时比较特殊,网友提供的在mounted/onLoad函数中重置的方法在这时就不适用了。

方法缺陷: vue的create,mounted等生命周期钩子函数只执行一次,当组件创建并被挂载到DOM上以后,就不会执行了,所以这就导致在上述小程序场景中我们左右切换tab页时模态框中的输入值并没有被清空。 这种方法不适用于tab页。

如何改进? 我们已经知道这个问题根源在于mounted只执行一次,所以只要把重置代码放入onShow钩子函数中就可以了 每次页面显示后再重置数据

onShow() {
  Object.assign(this.$data, this.$options.data())
  this.init()//页面数据初始化
},

测试可以发现数据被成功重置

# 总结

  • 新开非tab页时通过onLoad/mounted/onUnload重置
  • 新开tab页时onLoad/mounted只会执行一次,需要通过onShow重置
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 现象
  • # 解决方法
    • # 编辑数据存在于非tab页的情况
      • # 编辑数据存在于tab页的情况
      • # 总结
      相关产品与服务
      云开发 CloudBase
      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档