vue3组件ref属性用法,动态绑定ref

常见用法

TypeScript 复制代码
<template>
    <CustomWin  ref="sectionRef" class="ref-section"></CustomWin >
    <button @click="xx">点击</button>
</template>

<script setup lang="ts">
import {ref} from 'vue'
import CustomWin from "./CustomWin.vue"
const sectionRef = ref<InstanceType<typeof CustomWin>>();

function xx(){
    if(sectionRef.value){
       // sectionRef.value.xxx 调用
    }
}

</script>

如果我们需要在代码里面动态绑定ref,如果处理?

其实ref属性可以是个函数,(el)=>{},这样想怎样存储ref就可以怎样存储

TypeScript 复制代码
<template>
  <div v-for="(item, i) in list" :ref="el => { divs[i] = el }">
    {{ item }}
  </div>
</template>

<script>
import {
  onBeforeUpdate,
  reactive,
  ref,
} from 'vue';

export default {
  setup() {
    const list = reactive([1, 2, 3]);
    const divs = ref([]);

    // Make sure to reset the refs before each update.
    onBeforeUpdate(() => {
      divs.value = [];
    });

    return {
      list,
      divs,
    };
  },
};
</script>

注:el是就是vue实例,赋值后访问的时候无需xx.value

相关推荐
余生H9 分钟前
前端Python应用指南(二)深入Flask:理解Flask的应用结构与模块化设计
前端·后端·python·flask·全栈
outstanding木槿14 分钟前
JS中for循环里的ajax请求不数据
前端·javascript·react.js·ajax
酥饼~21 分钟前
html固定头和第一列简单例子
前端·javascript·html
一只不会编程的猫24 分钟前
高德地图自定义折线矢量图形
前端·vue.js·vue
所以经济危机就是没有新技术拉动增长了25 分钟前
二、javascript的进阶知识
开发语言·javascript·ecmascript
m0_7482509326 分钟前
html 通用错误页面
前端·html
来吧~35 分钟前
vue3使用video-player实现视频播放(可拖动视频窗口、调整大小)
前端·vue.js·音视频
Bubluu36 分钟前
浏览器点击视频裁剪当前帧,然后粘贴到页面
开发语言·javascript·音视频
鎈卟誃筅甡1 小时前
Vuex 的使用和原理详解
前端·javascript
呆呆小雅1 小时前
二、创建第一个VUE项目
前端·javascript·vue.js