vue 是否可以根据 route 获取到与之对应的 vue 实例对象吗?

2022-03-23 19:51:57 +08:00
 retrocode

一个小需求,切换路由时对页面内容做校验,由于多数页面是模板化的,变量名起的比较统一,所以我的想法是根据对应的 path 直接查找对应的 vue 实例对象然后获取$data 做校验。

但是我到处查了下文档讨论没找到相关的 route 绑定 vue 实例的类似操作,是不是无法实现类似需求?

备注下,不只是获取当前路由,还需要获取 keeplive 缓存下来的那部分路由的 vue 对象,这种操作应该怎么搞?

1008 次点击
所在节点    问与答
4 条回复
murmur
2022-03-23 19:55:27 +08:00
route.matched[0].component
retrocode
2022-03-23 21:17:44 +08:00
@murmur #1 不行,这个获取到的只有一个 default 的原始字段,是没有实例化的,无法获取到$data 内容
robinlovemaggie
2022-03-23 21:24:14 +08:00
beforeEnterRoute(from, to, next){next(vm => { vm.xxx })}
retrocode
2022-03-23 22:09:05 +08:00
@robinlovemaggie #3 这个也是个办法, 但是钩子只能获取到当前激活页面的实例, 对 keeplive 获取到的缓存的那部分无能为力,我在想有没有什么方式也可以获取到 keeplive 那部分数据, 要是能搞的话这个就能做很多操作了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/842448

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX