Wie gehe ich mit Ausnahmen in dynamischen Vue3-Komponenten um? Im folgenden Artikel geht es um die Ausnahmebehandlungsmethoden für dynamische Vue3-Komponenten. Ich hoffe, dass er für alle hilfreich ist. 🔜 , B. beim Wechseln in Tabs:
// 动态路由 export const asyncRouterMap: Array<RouteRecordRaw> = [ { path: '/', name: 'index', meta: { title: '首页' }, component: BasicLayout, // 引用了 BasicLayout 组件 redirect: '/welcome', children: [ { path: 'welcome', name: 'Welcome', meta: { title: '引导页' }, component: () => import('@/views/welcome.vue') }, ... ] } ]
Vue hat eine Komponente erhalten, die war ein reaktives Objekt erstellt. Dies kann zu unnötigem Leistungsaufwand führen und sollte vermieden werden, indem die Komponente mit markiert wird Variablen fungieren als Proxy, aber unsere Komponente hat nach dem Proxying keine andere Verwendung. Um Leistungsaufwand zu sparen, empfiehlt Vue, den Proxy zu verwenden.
Die Lösung ist wie oben erwähnt, Sie müssen für die Verarbeitung flachRef oder markRaw verwenden: Für die Tabs-Verarbeitung:
<el-tabs :model-value="copyTabName" type="card"> <template v-for="item in tabList" :key="item.key || item.name"> <el-tab-pane :name="item.key" :label="item.name" :disabled="item.disabled" :lazy="item.lazy || true" > <template #label> <span> <component v-if="item.icon" :is="item.icon" /> {{ item.name }} </span> </template> // 关键在这里 <component :key="item.key || item.name" :is="item.component" v-bind="item.props" /> </el-tab-pane> </template> </el-tabs>
import { markRaw, ref } from 'vue' import A from './components/A.vue' import B from './components/B.vue' interface ComponentList { name: string component: Component // ... } const tab = ref<ComponentList[]>([{ name: "组件 A", component: markRaw(A) }, { name: "组件 B", component: markRaw(B) }])
import { markRaw } from 'vue' // 动态路由 export const asyncRouterMap: Array<RouteRecordRaw> = [ { path: '/', name: 'home', meta: { title: '首页' }, component: markRaw(BasicLayout), // 使用 markRaw // ... } ]
const state = shallowRef({ count: 1 }) // 不会触发更改 state.value.count = 2 // 会触发更改 state.value = { count: 2 }
Web-Frontend-Entwicklung, markRaw
or using shallowRef
instead of ref
Einfaches Programmiervideo)
Das obige ist der detaillierte Inhalt vonEine kurze Analyse zum Umgang mit Ausnahmen in dynamischen Vue3-Komponenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!