Vue3:页面A搜索后跳转到页面B,然后从页面B退回页面A重新搜索,但是得到的页面B得刷新一下才会显示正确的数据

问题

Vue3: 从页面A进行搜索后跳转到页面B,然后从页面B退回页面A重新搜索,但是得到的页面B得刷新一下才会显示正确的数据。

  • 读取数据的代码格式大致如下(代码做了一些删减):

解决

  • 会出现上述情况,是因为渲染数据这个步骤没有出现在Vue实例的生命周期中合适的阶段,读取数据并渲染数据的步骤应该放在组件实例已经完全创建后。而上述代码把数据的声明放在了setup函数外,vue3的setup函数相当于vue2中的 beforeCreate 和created函数的结合,因此应该把数据的声明放在setup函数中。

  • 下图是vue2和vue3生命周期钩子函数的一个对比(图源网络):

  • 对于Vue3来说,可以直接使用语法糖,可以避免一些因生命周期函数使用不当而造成的错误,在script标签中加个setup即可

javascript 复制代码
<script setup>
</script>
相关推荐
陈逸子风1 天前
(系列十二)Vue3+.Net8实现用户登录(超详细登录文档)
vue3·webapi·权限·流程·表单
西凉河的葛三叔4 天前
vue3+elementui-plus el-dialog全局配置点击空白处不关闭弹窗
前端·vue3·elementui-plus
xiaohuatu4 天前
CSRF保护--laravel进阶篇
vue3·laravel·csrf
半度℃温热9 天前
ERROR TypeError: AutoImport is not a function
webpack·vue3·element-plus·插件版本·autoimport
朝阳399 天前
vue3 中直接使用 JSX ( lang=“tsx“ 的用法)
vue3·tsx·jsx
xcLeigh10 天前
VUE3实现简洁的特色美食网站源码
前端·源码·vue3
陈逸子风13 天前
(系列十一)Vue3框架中路由守卫及请求拦截(实现前后端交互)
vue3·webapi·权限·流程·表单
爱分享的Hayes小朋友14 天前
如何用post请求调用Server-Sent Events服务
前端·vue3·sse·post
Coisini_甜柚か16 天前
打字机效果显示
前端·vue3·antv
Modify_QmQ16 天前
初识Electron & 进程通信
electron·vue3·桌面端