vue项目打包后部署到服务器,服务端动态往index.html写入了script,在组件中刷新页面会重新进入index.html后进入了默认的组件,而不是当前组件,是什么原因造成的呢?
11条回答 默认 最新
- shxs875 2023-06-26 14:26关注
获得0.30元问题酬金 这是因为在单页应用中,Vue 路由在浏览器端(客户端)进行管理,而动态往 index.html 中写入的 script 标签实际上是在服务端加载,这意味着在客户端重新进入 index.html 时,控制权已经交给了服务端,此时客户端的 Vue 实例已经被卸载,因此无法正确地匹配到当前路由所对应的组件。
要解决这个问题,一种比较通用的做法是在服务端返回 index.html 时,将当前的路由信息一并返回,并由客户端在重新进入 index.html 的时候,根据路由信息重新初始化 Vue 实例和对应的组件。具体可以通过检查浏览器地址栏中的路由信息,然后通过 Vue Router 的 push 或 replace 方法来进行路由转发。如果想要更加高效的实现,可以考虑使用服务端渲染 (SSR) 技术来进行解决。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 能不能通过蓝牙将传感器数据传送到手机上
- ¥20 100元python和数据科学实验项目
- ¥15 根据时间在调用出列表
- ¥15 FastReport.community 编辑,table只显示“每页”最顶部和底部横线
- ¥15 R 包chipseeker 安装失败
- ¥15 Veeam Backup & Replication 9.5 还原问题
- ¥15 vue-print-nb
- ¥15 winfrom的datagridview下拉框变成了黑色,渲染不成功
- ¥20 利用ntfy实现短信推送
- ¥30 如何用VBA代码写抽取TRIBON M3数据库的模型信息