찾다
웹 프론트엔드View.jsref를 사용하여 vue3의 성능 경고 문제를 해결하는 방법

    ref 사용 시 Vue3 성능 경고

    Problem

    ref 사용 시 성능 경고 코드는 다음과 같습니다

    <template>
      <div>
        <component :is="currentTabComponent"></component>
      </div>
    </template>
    
    <script setup>
    
    import { ref,shallowRef } from "vue";
    import TodoList from "./components/TodoList.vue";
    import Rate from "./components/Rate.vue";
    
    let tabs ={
      TodoList,
      Rate
    }
    let currentTabComponent = ref(TodoList)
    </script>

    Warning

    runtime-core.esm-bundler.js:6591 [Vue 경고]: Vue 반응형 개체로 만들어진 구성 요소를 받았습니다. 이는 불필요한 성능 오버헤드를 초래할 수 있으므로 구성 요소를 markRaw로 표시하거나 반응형으로 만들어진 구성 요소인shallowRef를 사용하여 피해야 합니다. -bundler.js:6591 [Vue 경고]: Vue가 반응형으로 만들어진 구성 요소를 받았습니다. 이로 인해 불필요한 성능 오버헤드가 발생하므로 구성 요소를 markRaw로 표시하거나 ref 대신shallowRef를 사용하여 방지해야 합니다. 반응된 구성 요소:

      markRaw: 개체가 프록시로 변환되지 않도록 표시합니다. 객체 자체를 반환합니다.
    • markRaw: 标记一个对象,使其永远不会转换为 proxy。返回对象本身。

    • shallowRef

      shallowRef: 자체 .value의 변경 사항을 추적하지만 해당 값을 반응형으로 만들지 않는 참조를 만듭니다.

    SOLVED

    객체를 얕은 참조로 표시하여 이 문제를 해결했습니다.

    따라서 구성 요소를 상태에 저장하는 대신 키가 있는 참조를 저장하고 객체에 대해 조회를 수행하세요.

    전체 코드

    <template>
      <div>
        <h2 id="带动画的Todolist">带动画的Todolist</h2>
        <button
          v-for="(i,tab) in tabs"
          :key="i"
          :class="[&#39;tab-button&#39;, { active: currentTabComponent === tab }]"
          @click="fn(tab)"
        >
          {{ tab }}
        </button>
        <component :is="currentTabComponent"></component>
      </div>
    </template>
    
    <script setup>
    
    import { ref,shallowRef } from "vue";
    import TodoList from "./components/TodoList.vue";
    import Rate from "./components/Rate.vue";
    
    let tabs ={
      TodoList,
      Rate
    }
    let currentTabComponent = shallowRef(TodoList)
    
    function fn (tab){
      currentTabComponent.value = tabs[tab]
    }
    </script>

    vue3 ref 함수 사용법

    1. 설정 함수에서 ref 함수를 사용하여 데이터가 변경되면 Vue는 자동으로 UI

    <template>
        <div>
            <h2 id="mycount">{{mycount}}</h2>
            <button @click="changeMyCount">changeMyCount</button>
        </div>
    </template>
     
    <script>
    import { ref } from "vue";
    export default {
        name: "ref",
        setup(){
            const mycount = ref(2);
            const changeMyCount = ()=>{
                mycount.value = mycount.value + 2 ;
            }
            
            return {
                mycount,
                changeMyCount,
            }
        }
    };
    </script>

    ref 함수를 업데이트하여 기본 유형의 변경 사항을 모니터링할 수 있습니다. , 복잡한 유형(예: 객체, 배열)의 변경 사항을 모니터링할 수 없습니다.

    2. ref 속성을 통해 요소를 가져오려면 라이프 사이클을 사용해야 합니다. 이때 템플릿의 요소들은 페이지에 마운트되지 않았으므로 마운트 후 요소들을 얻어야 합니다.

    아아아아

    위 내용은 ref를 사용하여 vue3의 성능 경고 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명
    이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
    分享两个可以绘制 Flowable 流程图的Vue前端库分享两个可以绘制 Flowable 流程图的Vue前端库Sep 07, 2022 pm 07:59 PM

    前端有没有现成的库,可以直接用来绘制 Flowable 流程图的?下面本篇文章就跟小伙伴们介绍一下这两个可以绘制 Flowable 流程图的前端库。

    vue是前端css框架吗vue是前端css框架吗Aug 26, 2022 pm 07:37 PM

    vue不是前端css框架,而是前端JavaScript框架。Vue是一套用于构建用户界面的渐进式JS框架,是基于MVVM设计模式的前端框架,且专注于View层。Vue.js的优点:1、体积小;2、基于虚拟DOM,有更高的运行效率;3、双向数据绑定,让开发者不用再去操作DOM对象,把更多的精力投入到业务逻辑上;4、生态丰富、学习成本低。

    聊聊Vue3+qrcodejs如何生成二维码并添加文字描述聊聊Vue3+qrcodejs如何生成二维码并添加文字描述Aug 02, 2022 pm 09:19 PM

    Vue3如何更好地使用qrcodejs生成二维码并添加文字描述?下面本篇文章给大家介绍一下Vue3+qrcodejs生成二维码并添加文字描述,希望对大家有所帮助。

    手把手带你利用vue3.x绘制流程图手把手带你利用vue3.x绘制流程图Jun 08, 2022 am 11:57 AM

    利用vue3.x怎么绘制流程图?下面本篇文章给大家分享基于 vue3.x 的流程图绘制方法,希望对大家有所帮助!

    一文深入详解Vue路由:vue-router一文深入详解Vue路由:vue-routerSep 01, 2022 pm 07:43 PM

    本篇文章带大家详解Vue全家桶中的Vue-Router,了解一下路由的相关知识,希望对大家有所帮助!

    手把手带你使用Vue开发一个五子棋小游戏!手把手带你使用Vue开发一个五子棋小游戏!Jun 22, 2022 pm 03:44 PM

    本篇文章带大家利用Vue基础语法来写一个五子棋小游戏,希望对大家有所帮助!

    手把手带你了解VUE响应式原理手把手带你了解VUE响应式原理Aug 26, 2022 pm 08:41 PM

    本篇文章我们来了解 Vue2.X 响应式原理,然后我们来实现一个 vue 响应式原理(写的内容简单)实现步骤和注释写的很清晰,大家有兴趣可以耐心观看,希望对大家有所帮助!

    通过9个Vue3 组件库,看看聊前端的流行趋势!通过9个Vue3 组件库,看看聊前端的流行趋势!May 07, 2022 am 11:31 AM

    本篇文章给大家分享9个开源的 Vue3 组件库,通过它们聊聊发现的前端的流行趋势,希望对大家有所帮助!

    See all articles

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

    AI Hentai를 무료로 생성하십시오.

    뜨거운 도구

    DVWA

    DVWA

    DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

    PhpStorm 맥 버전

    PhpStorm 맥 버전

    최신(2018.2.1) 전문 PHP 통합 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)

    MinGW - Windows용 미니멀리스트 GNU

    MinGW - Windows용 미니멀리스트 GNU

    이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

    ZendStudio 13.5.1 맥

    ZendStudio 13.5.1 맥

    강력한 PHP 통합 개발 환경