useRouter()放在箭头函数里面的问题

来源:6-6 vue-router 添加路由

满舰饰v

2022-07-07

这个useRouter()函数,放在箭头函数外面可以获取到函数的返回对象

但是如果放在箭头函数里面,useRouter()函数就只能返回undefined,还会给你一个警告
这是为什么???图片描述

import { useRouter } from 'vue-router';
export default {
  setup(props) {
    const myRouter = useRouter();
    console.log('函数外面的 useRouter', useRouter());

    
    const handleLinkTo = function () {
      console.log('函数里面的 useRouter', useRouter()); // undefined
      myRouter.push({ name: 'login' });
    };
    return { handleLinkTo };
  },
};
写回答

1回答

张轩

2022-07-08

同学你好 

从错误提示就可以看到 useRouter 这个钩子函数只能在 setup(第一层) 中使用, 由于它要使用 inject/provide 方法的,你将它包裹到另外一个 function 中也是不行的,执行的作用域不行。这是个硬性规定,记住就可以了。

0
1
满舰饰v
非常感谢!
2022-07-08
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3144 学习 · 2317 问题

查看课程