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

相关推荐
Maimai108082 分钟前
React Server Components 是什么?一文讲清 CSR、Server Components 与 Next.js 中的客户端/服务端组件
前端·javascript·css·react.js·前端框架·html·web3
肉肉不吃 肉11 分钟前
事件循环,宏任务,微任务
前端·javascript
z止于至善17 分钟前
Vue ECharts:Vue 生态下的 ECharts 可视化最佳实践
前端·vue.js·echarts·vue echarts
℘团子এ17 分钟前
什么是Docker
前端·docker·容器
Software攻城狮18 分钟前
【el-table 表格组件 删除标头分割线】
前端·vue.js·elementui
陆康永25 分钟前
vue2封装hook函数,可以监听主页面生命周期
前端·javascript·vue.js
我命由我1234526 分钟前
Vue Router - 记录一下 2 种路由写法
前端·javascript·vue.js·前端框架·html·html5·js
m0_7190841130 分钟前
导入导出—设备管理系统
前端·javascript·vue.js
周淳APP32 分钟前
【计算机网络之XSS、CSRF、DDoS原理及防御措施】
前端·网络·计算机网络·http·ddos·xss·csrf
wuhen_n35 分钟前
Vue Router 进阶:路由懒加载、导航守卫与元信息的高效运用
前端·javascript·vue.js