首页 > 其他分享 >ts vue3 getCurrentInstance 使用,$refs 调用方式

ts vue3 getCurrentInstance 使用,$refs 调用方式

时间:2024-07-01 22:45:35浏览次数:22  
标签:console log refs ts instance vue3 ref click

代码示例

可以通过ref变量实现绑定$ref,或者getCurrentInstance来获取$refs

/**
 * $ref 使用方式,变量名和组件的属性ref值一致
 */
const hChildRef = ref()

console.log(hChildRef, "hChildRef")

const instance = getCurrentInstance()

// const self=(instance as ComponentInternalInstance).proxy as ComponentPublicInstance

const self = instance?.proxy

console.log(self, "this_proxy")

console.log(self?.$refs, "this_instance_refs_24234")
onMounted(() => {

  //在onMounted 里面调用$ref才能获取到dom对象
  console.log(self?.$refs, "this_instance_refs")
  console.log(self?.$refs?.hChildRef, "this_instance_refs_hChildRef")
})

// 直接变量divRef 和ref属性同名即可获取$refs
const divRef = ref()

onMounted(() => {
  //需要放在mounted这样才能保证dom已加载
  divRef.value.addEventListener("click", () => {
    console.log("click")
  }, false)


  const { proxy } = getCurrentInstance() as ComponentInternalInstance

  //通过?可以解决提示问题,如果不加? 则会提示错误,但是不影响运行
  //as HTMLElement 才能调用element方法,不会提示错误
  (proxy?.$refs?.divRefTwo as HTMLElement).addEventListener("click", () => {
    console.log("click_divRefTwo")
  }, false)
  /** 
   * 下面方式不影响运行,但是会提示错误,所以规划做法还是 as HTMLElement 类型断言
    proxy?.$refs?.divRefTwo?.addEventListener("click", () => {
  
      console.log("click_divRefTwo2")
    }, false)
  */
})
  • html
<template>
  <div class="greetings">
    <h1 class="green">{{ msg }}</h1>
    <h3>
      You’ve successfully created a project with
      <a href="https://vitejs.dev/" target="_blank" rel="noopener">Vite</a> +
      <a href="https://vuejs.org/" target="_blank" rel="noopener">Vue 3</a>.
    </h3>
    <div>{{ abd }}</div>
    <div>fatherInject:{{ fatherInject }}</div>
    <hChild ref="hChildRef" />

    <div style="color:blue" @click="changePage">change_page</div>
    <div style="color:blue" @click="changePageParams">changePageParams</div>

    <img style="width:30px;height:30px" :src="mypic" alt="">

    <div ref="divRef">$ref</div>

    <div ref="divRefTwo">$ref_instance</div>
  </div>
</template>

标签:console,log,refs,ts,instance,vue3,ref,click
From: https://www.cnblogs.com/jocongmin/p/18278974

相关文章

  • 4、爬虫-数据获取之双R(CS/BS)与chrom检查工具使用-requests请求
    模拟客户端请求服务端:  ·模拟请求行和请求头、请求体 """模拟客户端请求获取静态数据和动态数据使用python自己去构造请求使用request""""""请求的构成:请求行、请求头、请求体"""###########################静态页面加载请求的##############################......
  • 10、爬虫-requests的使用-session()、防盗链
    #会话-cookie的使用requests.session()"""先登录网站、找到llogin相关的url得到cookie、拿到formatData中的信息带着cookie去请求url使用cookie去访问(session-会话)该网站其它内容的时候都会带着cookie"""importrequests#创建会话session=requests.session()#用户......
  • vue3一些高阶用法
    1.ref和reactive首先,让我们从Vue3最基础也是最常用的两个方法开始:ref 和 reactive。它们是响应式基础。refref 用于定义一个响应式的数据对象。它适用于单个基本类型或对象的场景。<scriptsetup>import{ref}from'vue'constcount=ref(0)functionincr......
  • 自定义vue3 hooks
    文章目录hooks目录结构demohooks当页面内有很多的功能,js代码太多,不好维护,可以每个功能都有写一个js或者ts,这样的话,代码易读,并且容易维护,组合式setup写法与此结合......
  • 一个项目学习Vue3---Vue模板方法
     内容资源下载:关注公众号(资小库),下载相关资源分析下面一段代码,学习模板方法的可能的知识<template><div><div>将下面的msg属性放到上面来:{{msg}}</div><divv-html="htmlMsg"></div><divv-bind="id">这个地方绑定了一个ID{{id}}</div>......
  • Vue整合echarts
    npm安装echartsnpminstallecharts-S安装好之后在<script>引入echartsimport*asechartsfrom'echarts'在template标签中引用<divid="main"style="width:100%;height:400px;">/div>在exportdefault中创建mounted页面元素渲染之后再触发完整V......
  • 最新AI智能问答AI绘画ChatGPT系统、TTS & 语音识别,文档分析、GPT-4o多模态识图理解,一
    一、前言人工智能语言模型和AI绘画在多个领域都有广泛的应用。以下是一些它们的主要用处人工智能语言模型内容生成写作辅助:帮助撰写文章、博客、报告、剧本等。代码生成:自动生成或补全代码,提高编程效率。创意写作:生成故事、诗歌、歌词等创意性内容。对话系统客服系......
  • 鸿蒙学习1:ArkTS基础入门
    1变量和常量1.1变量    常见的基础数据类型:    string字符串、number数字、boolean布尔判断。    变量:专门用来存储数据的容器。    语法:let 变量名:数据类型=值。例如:letname:='张三';letprice:number=12.4;letisSucc......
  • 【往届均已完成检索:CNKI知网&Google Scholar谷歌学术 | 教育、管理、心理等社科类方向
    第四届现代教育技术与社会科学国际学术会议(ICMETSS2024)将于2024年8月23-25日在马来西亚·吉隆坡举行。会议旨在为从事教育相关领域的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术,了解学术发展趋势,拓宽研究思路,加强学术研究和探讨,促进学术成果产业化......
  • ECharts 快速入门
    ECharts是一个由百度开源的基于JavaScript的数据可视化图表库,它提供了丰富的图表类型、交互功能和主题样式,方便用户快速创建各种数据可视化图表,并在商业和开源项目中广泛应用。本文内容根据ECharts官方文档整理。下面将介绍如何使用ECharts创建最常用的几种图表......