vue3---getCurrentInstance

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

父组件中:

1.setup语法糖中导入子组件
2.在子组件标签上绑定ref值
3.setup内部从vue中按需导出 getCurrentInstance 方法
4.调用getCurrentInstance方法导出proxy
5.通过proxy.$refs.子组件ref名.子组件内属性/方法 实现调用

<template>
  <!-- 父组件 -->
  <div>
    <!-- 子组件 -->
    <Child ref="child" />
    <button @click="changeChildren">子组件count+1</button>
  </div>
</template>
 
<script setup lang="ts" name="Father">
import { getCurrentInstance, ComponetInternalInstance,ref } from "vue";
import Child from "./zi.vue";
const child = ref(null)
 // as ComponetInternalInstance表示类型断言,ts时使用。否则报错,proxy为null
const { proxy } = getCurrentInstance() as ComponetInternalInstance;
function changeChildren() {
  proxy.$refs.child.count += 1;
  //也可以使用ref数据.value的形式调用:
  //child.value.count += 1
  console.log(child.value.name)
}
</script>
 
<style scoped></style>

main.js

import api from "./utils/api.js"
import StringUtil from "./utils/StringUtil.js"

app.config.globalProperties.api = api;
app.config.globalProperties.StringUtil = StringUtil;
import {getCurrentInstance } from 'vue';

const { proxy } = getCurrentInstance();

console.log(proxy.api);
console.log(proxy.StringUtil.isBlank('1'));

方式一、通过 getCurrentInstance 方法获取当前组件实例,从而获取 route 和 router

Html

<template>
  <div>

  </div>
</template>
<script>
import { defineComponent, getCurrentInstance } from 'vue'

export default defineComponent({
  name: 'About',
  setup(){
    const { proxy } = getCurrentInstance()
    console.log(proxy.$root.$route)
    console.log(proxy.$root.$router)
    return {}
  }
})
</script>

方式二:通过从路由中导入 useRoute useRouter 使用 route 和 router。 官方Api
Html

import { defineComponent } from ‘vue’
import { useRoute, useRouter } from ‘vue-router’
export default defineComponent({
setup () {
const $route = useRoute()
const r o u t e r = u s e R o u t e r ( ) c o n s o l e . l o g ( router = useRouter() console.log( router=useRouter()console.log(route)
console.log($router)
}
})文章来源地址https://www.toymoban.com/news/detail-803209.html

到了这里,关于vue3---getCurrentInstance的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Vue3】Vue3核心内容(上)

    🎀个人主页:努力学习前端知识的小羊 感谢你们的支持:收藏🎄 点赞🍬 加关注🪐 1.组件中所用的:数据,方法等等,均要配置在setup中 2.setup函数的俩种返回值: (1)若返回一个对象,则对象中的属性,方法,在模板中均可以直接使用 (2)若返回一个渲染函数:则可以

    2024年02月16日
    浏览(50)
  • Vue3.0-创建Vue3.0项目

    1、创建工程 通过指令: Npm init vue@latest 选择no,最后输入项目名称 2、进入创建文件的项目目录 cd vue-demo 3、初始化项目 通过指令: npm install 初始化项目,该过程需要等一会 4、启动项目 通过指令: npm run dev 启动后,会出现url,浏览器中输入该url即可 1、安装 Element Plus ele

    2024年02月09日
    浏览(48)
  • Vue3浅谈:(二)Vue3计算属性

    目录 一、Vue3计算属性 1.Vue3计算属性基础使用 2.计算属性缓存和常规方法 3.可写计算属性 当我们需要针对一些数据进行一些逻辑运算时可以使用模板中的表达式如下: 但是如果在模板中写太多逻辑,会让模板变得臃肿,难以维护。因此我们可以使用计算属性 computed()  方法来

    2023年04月25日
    浏览(27)
  • vue3 快速入门系列 —— vue3 路由

    在vue3 基础上加入路由。 vue3 需要使用 vue-router V4 ,相对于 v3,大部分的 Vue Router API 都没有变化。 Tip :不了解路由的同学可以看一下笔者之前的文章:vue2 路由 参考:vue2 路由官网、vue3 路由官网 在 Vue Router API 从 v3(Vue2)到 v4(Vue3)的重写过程中,大部分的 Vue Router API 都

    2024年04月09日
    浏览(38)
  • vue2和vue3的区别(Vue3升级部分)

    区别有两个目的:一面试说一下书面化的表达,二工作需要升级大白话说一下项目应用的区别。 双向数据绑定: vue2 的双向数据绑定是利⽤ES5 的⼀个 API ,Object.defineProperty()对数据进⾏劫持 结合 发布订阅(gettersetter)模式的⽅式来实现的。 vue3 中使⽤了 ES6 的 ProxyAPI 对数据

    2024年02月12日
    浏览(37)
  • 【vue3】vue3中父子组件传参:

    一、父传子: 【1】父组件传值: 【2】子组件接收: 二、父调用子方法: 【1】父组件调用: 【2】子组件暴露: 三、子组件发送emit方法给父组件: 【1】父组件: 【2】子组件调用:

    2024年02月13日
    浏览(32)
  • Vue3全家桶 - Vue3 - 【7】生命周期

    Vue3官网-生命周期钩子函数; 每个Vue组件实例在创建时都需要经历一系列的初始化步骤,比如数据侦听、编译模板、挂载实例到 DOM ,以及在数据改变时更新 DOM 。在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在特定阶段运行自己的代码。最常见的是

    2024年03月13日
    浏览(52)
  • vue3 系列:Vue3 官方文档速通

    前言:参考Vue 官方文档,本文档主要学习组合式 API。 1.1 什么是 Vue? 一款 JS 框架,并有两个核心功能:声明式渲染、响应性。  1.2 渐进式框架 根据不同的需求场景,使用不同方式的 Vue,比如:         无需构建步骤,直接引入 vuejs。         在任何页面中作为

    2024年01月18日
    浏览(31)
  • Vue3 第二节 Vue3的响应式

    1.Vue3的响应式原理 2.ref函数和reactive函数的对比 3.setup注意点 1.Vue2.x中的响应式原理 ① 实现原理 对象类型:通过Object.defineProperty() 对属性的读取,修改进行拦截(数据劫持) 数组类型:通过重写更新数据的一系列方法来实现拦截,对数组变更方法进行包裹 ② 存在问题 新增

    2024年02月14日
    浏览(32)
  • 【vue3】使用vite构建vue3项目

    ==😉博主:初映CY的前说(前端领域) ,📒本文核心:使用vite构建vue3项目 【前言】 当我们选择了vue3作为我们项目的开发,就更加的推荐使用vite来对我们的项目进行打包。很简单——这也是开发vue的团队开发的工具,因此支持性肯定比传统的打包工具好,下面我们就来使用vi

    2024年02月06日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包