Le code d'avertissement de performances utilisant ref est le suivant
<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>
runtime-core.esm-bundler.js:6591 [Vue warn] : Vue a reçu un Composant qui a été transformé en objet réactif. Cela peut entraîner une surcharge de performances inutile et doit être évité en marquant le composant avec markRaw ou en utilisantshallowRef au lieu de ref. . js:6591 [Avertissement Vue] : Vue a reçu un composant qui a été rendu réactif. Cela entraîne une surcharge de performances inutile et doit être évité en marquant les composants avec markRaw ou en utilisant ShallowRef au lieu de ref. Composants ayant réagi :
markRaw
: marque un objet afin qu'il ne soit jamais converti en proxy. Renvoie l'objet lui-même. markRaw
: 标记一个对象,使其永远不会转换为 proxy。返回对象本身。
shallowRef
shallowRef
: créez une référence qui suit les modifications dans son propre .value, mais ne rend pas sa valeur réactive. Code complet
<template> <div> <h2>带动画的Todolist</h2> <button v-for="(i,tab) in tabs" :key="i" :class="['tab-button', { 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>
<template> <div> <h2>{{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>
<template> <div> <div ref="box"><button>hehe</button></div> </div> </template> <script> import { ref } from "vue"; export default { name: "ref", setup(){ const box = ref(null) onMounted(()=>{ console.log(box.value) }) } }; </script>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!