V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
retrocode
V2EX  ›  问与答

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

  •  
  •   retrocode · 2022-03-23 19:51:57 +08:00 · 1017 次点击
    这是一个创建于 1004 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    4 条回复    2022-03-23 22:09:05 +08:00
    murmur
        1
    murmur  
       2022-03-23 19:55:27 +08:00
    route.matched[0].component
    retrocode
        2
    retrocode  
    OP
       2022-03-23 21:17:44 +08:00
    @murmur #1 不行,这个获取到的只有一个 default 的原始字段,是没有实例化的,无法获取到$data 内容
    robinlovemaggie
        3
    robinlovemaggie  
       2022-03-23 21:24:14 +08:00
    beforeEnterRoute(from, to, next){next(vm => { vm.xxx })}
    retrocode
        4
    retrocode  
    OP
       2022-03-23 22:09:05 +08:00
    @robinlovemaggie #3 这个也是个办法, 但是钩子只能获取到当前激活页面的实例, 对 keeplive 获取到的缓存的那部分无能为力,我在想有没有什么方式也可以获取到 keeplive 那部分数据, 要是能搞的话这个就能做很多操作了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2668 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:46 · PVG 15:46 · LAX 23:46 · JFK 02:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.