Vue3——getCurrentInstance、页面中route和router的获取方式

这篇具有很好参考价值的文章主要介绍了Vue3——getCurrentInstance、页面中route和router的获取方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

getCurrentInstance()

在vue2中,可以通过this来获取组件实例,但是在vue3的setup函数中,无法通过this获取到组件实例,在setup函数中this的值是undefined,但是vue3提供了getCurrentInstance()来获取组件的实例对象;

    const { ctx,proxy } = getCurrentInstance();
    console.log(typeof getCurrentInstance);
    console.log(getCurrentInstance(), typeof getCurrentInstance());
    console.log(proxy, typeof proxy);
    console.log(ctx, typeof ctx);

输出结果:

vue3获取$route,vue.js,javascript,前端

 可以看出,getCurrentInstance是一个方法,getCurrentInstance()是一个对象,ctx和proxy也是一个对象,ctx和proxy是getCurrentInstance()对象中的一个属性,通过解构赋值的方式拿到的,ctx是一个普通的对象,而proxy是一个proxy对象,两者里面都可以看到当前组件的data值和方法,可以使用proxy[属性名]去获取实例对象中的数据或者调用对象中的方法;

getCurrentInstance只能在setup函数或生命周期钩子函数中使用;

ctx对象和proxy对象的区别:

1、从getCurrentInstance方法中解构出来的ctx对象,只能在开发环境下使用,生产环境下ctx将访问不到(不推荐使用)

2、proxy对象在开发环境以及生产环境中都能拿到组件实例对象(推荐使用)

获取组件实例对象的方式

1、获取挂载到全局中的方法

const instance = getCurrentInstance()
console.log(instance.appContext.config.globalProperties)

2、利用proxy对象

const { proxy } = getCurrentInstance()  

获取route和router的方式

方法一:通过getCurrentInstance()方法获取到组件实例,从而获取到route和router

import { getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
proxy.$router.push({ path: "/home" });  // 实现路由跳转
console.log("获取当前路由---》", proxy.$route)

方法二:通过从vur-router中引入useRoute()、useRouter()方法来获取到route和router文章来源地址https://www.toymoban.com/news/detail-607806.html

import { useRoute, useRouter } from 'vue-router'
const router = useRouter();
const route = useRoute();
console.log('当前路由:', route)
router.push({ path: "/home" });

到了这里,关于Vue3——getCurrentInstance、页面中route和router的获取方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • vue3+axios+router实现页面跳转及登录

    vue3+axios+router实现页面跳转及登录

    本篇文章主要是,使用 vite 创建一个vue3 书籍商城的小型案例,项目中主要运用到路由router及接口axios等知识点。 1.开始搭建项目框架,使用vite来构建项目 2.由于vite构建的项目中需要自己手动下载路由以及创建路由文件夹,所以在创建好的项目文档中找到src文件夹,在src文件

    2024年02月04日
    浏览(15)
  • Element UI 页面传参与接收参数,注意router和route

    在 Element UI 中,可以使用 $router 对象来进行页面跳转并设置请求参数。同时,也可以在目标页面中使用 $route 对象来获取传递的参数。 以下是一个示例: 在跳转前的页面中,使用 $router 对象进行跳转并设置参数: 在这个例子中,跳转前的页面通过 $router 对象的 push 方法进行

    2024年01月18日
    浏览(11)
  • vue3 的router跳转 - 页面同tab跳转和打开新tab跳转

    vue3 的router跳转 - 页面同tab跳转和打开新tab跳转

    当前页需要的方法 主要是获得Vue Router实例暴露的一些方法,使用这些方法,进行路由操作 引入 调用 目标页需要的方法 主要是对传递来的参数,进行接收,比如查询参数,页面路径,标题,hash等 调用 route里面的数据会被处理成响应式 页面同tab跳转 push(to) :跳转到指定的路

    2024年02月01日
    浏览(26)
  • React中使用react-router-cache-route缓存页面状态

    在开发中,从A页面跳转到other页面,再返回A页面时react-router会直接刷新页面,导致A页面中已加载的海量数据状态丢失,需要重新加载,用户体验不佳,所以必须将海量数据状态进行缓存。 (在小编的实际场景中,A页面是一堆模型业务数据标注点,由于模型永远不会更改,但

    2023年04月13日
    浏览(9)
  • vue3中,form表单校验之特殊字符校验、手机号、身份证号、百分制数字 & route和router的写法 & setup的两种用法 & rules中校验之blur和change

    vue3中,form表单校验之特殊字符校验、手机号、身份证号、百分制数字 route和router的写法 setup的两种用法 rules中校验之blur和change 1、写法一 index.vue 2、写法二完整版 index.vue 2、校验文件 srcutilsvalidate.ts

    2024年02月05日
    浏览(12)
  • 基于vscode实现vue3项目创建启动+安装配置路由vue-router实现单页面组件切换

    基于vscode实现vue3项目创建启动+安装配置路由vue-router实现单页面组件切换

    访问https://nodejs.org/en,点击下载最新版本的nodejs,并安装。 在项目目录文件下,通过cmd运行下述指令。 依次输入下列命令,启动vue项目 在浏览器中加载http://localhost:5173/,页面加载成功,说明vue项目安装启动成功。 建议安装第三方库通过vscode中的终端来操作,项目启动通过

    2024年02月03日
    浏览(46)
  • vue进阶-vue-route中 this.$router 与 this.$route 的区别

    通过上章 📖vue进阶-vue-route 学习,我们发现路由的设置和获取会用到 this.$router 和 this.$route ,容易混淆,本章做下区分。 ✨ this.$router :访问 路由器 。是一个全局的路由器对象,包含了很多属性和对象(比如 history 对象),任何页面都可以调用其 push() 、 replace() 、 go() 等

    2024年02月16日
    浏览(13)
  • 【Vue框架】 router和route是什么关系

    【Vue框架】 router和route是什么关系

    之前没太注意,写着写着突然发现它们貌似不太一样,记录以下,回顾的看总结就好。 route :当前激活路由的对象,用于访问和操作当前路由的信息 router :管理多个 route 的对象,整个应用的路由管理 router 是Vue Router的实例,它管理着应用程序的路由。它负责监听URL的变化,

    2024年02月11日
    浏览(9)
  • vue3获取页面路径

    2024年02月08日
    浏览(7)
  • 路由,vue-router的基本用法,vue-router的常见用法$route.params、$router.push、$router.replace、$router.go

    路由,vue-router的基本用法,vue-router的常见用法$route.params、$router.push、$router.replace、$router.go

    路由(英文: router)就是 对应关系 。 SPA指的是一个web网站只有唯一的一个HTML页面, 所有组件的展示与切换 都在这唯一的一个页面内完成。此时, 不同组件之间的切换 需要通过 前端路由 来实现。 *结论:*在SPA项目中, 不同功能之间的切换 ,要 依赖于前端路由 来完成! 通俗

    2024年01月16日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包