前端阿彬 2021-12-04 23:03 采纳率: 0%
浏览 105

vue3操作dom怎么搞

我在dom上写了ref属性,然后setup里初始化了一个ref数据并return里出去,然后再nexttick里想要操作dom,明明获取到dom了,而且实际上也确实页面上的数据改了,但是有报错,应该是ts造成的,怎么解决呢?

img

img

<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <div v-for="(item,i) in arrs" v-bind:key="i" @click="select(i)">
     {{i}} {{item}} |
  </div>
  <span :class="{'empty:':obj?.a?.b===0,'hello':'1'==='1'}">你选择了{{ selected }}</span><br/>
  <span ref="test">原数据</span>
<!-- <hello></hello> -->
</template>

<script lang="ts">
import { defineComponent, ref,nextTick , reactive, toRefs,toRaw, onBeforeMount, onMounted, onRenderTracked, onRenderTriggered } from 'vue';
import hello from './components/HelloWorld.vue'


interface dataType {
  arrs: string[];
  selected: string;
  select: (index:number) => void
}


export default defineComponent({
  name: 'App',
  components: {
hello
  },
  setup() {
    const data:dataType = reactive({
      arrs: ref(["苹果","香蕉","橘子"]),
      selected: "",
      select : (index:number) => {
        data.selected = data.arrs[index]
      }
    })
   
    const refData = toRefs(data)
    const arrs = ref(["苹果","香蕉","橘子"])
    const selected = ref("")
    const select = (index:number) => {
      selected.value = arrs.value[index]
    }
    
    
    const test = ref(null)


    
  
    nextTick(() => {
       let raw =toRaw(data)
       console.log(raw);  

       test.value.innerHTML = '修改后的数据'
    })
      
    //跟踪所有状态
    // onRenderTracked((e) => {
    //   console.log('1',e);
      
    // })
  
    // //状态触发
    // onRenderTriggered((e) => {
    //   console.log(e);
      
    // })


    return{
      // arrs,
      // selected,
      // select
      ...refData,
      test,
      obj:{a:{b:0}}
    }
  }
});
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>



  • 写回答

1条回答 默认 最新

  • 关注

    因为你初始化是null,这个只是一个警告。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月4日

悬赏问题

  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错