问题描述:

在vue2.x中可以通过this访问到$router对象,this是当前vue实例,但是在vue3的setup函数中是无法访问this的(为undefined),所以无法通过this来访问$router对象。

解决方法:

1.引入路由函数

// 引入路由函数
import { useRouter } from "vue-router";

// 使用
setup(){
    // 初始化路由
    const router = useRouter();
    router.push({
        path:'/login'
    });
}

2.使用setup函数的第二个参数context,context 是一个普通 JavaScript 对象,暴露了其它可能在 setup 中有用的值:

具体能访问到的有用的属性:

 其中root是vue的根实例,实例上有$router对象,于是可以通过root.$router访问到路由对象。

setup(props , { root }){
    const name = ref("")
    const orderId = ref("");
    orderId.value = root.$route.query.orderId;
    root.$router.push({
         path: '/ccList',
         query: { name: name.value },
    });
    return {
        orderId,
        name ,
    };
};

Logo

前往低代码交流专区

更多推荐