当前位置: 首页 > news >正文

郑州网站优化外包顾问neotv

郑州网站优化外包顾问,neotv,曲靖 曲靖网站建设软件(app)开发,宝塔搭建网站使用场景: 多个组件通过component标签挂载在同一个组件中,通过触发时间进行动态切换。vue3与vue2用法不一样,这里有坑! 使用方法: 1.通过vue的defineAsyncComponent实现挂载组件 2.component中的is属性 父组件&am…

使用场景:

多个组件通过component标签挂载在同一个组件中,通过触发时间进行动态切换。vue3与vue2用法不一样,这里有坑!

使用方法:

1.通过vue的defineAsyncComponent实现挂载组件

2.component中的is属性

父组件:

<template><div><div v-for="item in person.data" :key="item" @click="btn(item)">{{ item.name }}</div><h1>下面为动态组件</h1><component :is="person.componen"> </component></div>
</template><script setup>
import { reactive, onMounted, defineAsyncComponent } from "vue";
const One = defineAsyncComponent(() => import("./One.vue"));
const Two = defineAsyncComponent(() => import("./Two.vue"));const person = reactive({componen: "",data: [{ type: "one", name: "显示组件一" },{ type: "two", name: "显示组件二" },],
});
function btn(item) {if (item.type == "one") person.componen = One;if (item.type == "two") person.componen = Two;
}onMounted(() => {});
</script>

子组件:

<template><div>组件一</div><el-input v-model="person.input"></el-input>
</template><script setup>
import { ref, reactive, onMounted, computed, watch } from "vue";const person = reactive({ input: "" });
onMounted(() => {console.log("组件一");
});
</script>
<style scoped lang='less'>
</style>

效果:

这里会有警告:Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`. (Vue收到一个组件,该组件被设置为反应对象。这可能会导致不必要的性能开销,应该通过用“markRaw”标记组件或使用“shallowRef”而不是“ref”来避免。)

        

解决方法:

1.使用shallowRef替换响应式

<template><div><div v-for="item in person.data" :key="item" @click="btn(item)">{{ item.name }}</div><h1>下面为动态组件</h1><keep-alive><component :is="componen"> </component></keep-alive></div>
</template><script setup>
import { reactive, onMounted, defineAsyncComponent, shallowRef } from "vue";
let componen = shallowRef(null);
const Two = defineAsyncComponent(() => import("./Two.vue"));
const One = defineAsyncComponent(() => import("./One.vue"));
let obj = shallowRef({Two,One,
});
const person = reactive({data: [{ type: "one", name: "显示组件一" },{ type: "two", name: "显示组件二" },],
});
function btn(item) {if (item.type == "one") componen.value = obj.value.One;if (item.type == "two") componen.value = obj.value.Two;
}onMounted(() => {});
</script>
<style scoped lang='less'>
</style>

http://www.hengruixuexiao.com/news/34289.html

相关文章:

  • 购物网站建设建站最新黑帽seo教程
  • 餐饮网站开发性能需求俄罗斯搜索引擎浏览器
  • dreamweaver8.0做网站2021年年度关键词排名
  • 电子商务网站的网络营销策略分析长沙网红奶茶
  • 西安的商城网站建设网站seo优化方法
  • 最近国际新闻热点seo排名软件
  • 中文域名是网站名称吗网络推广怎么推广
  • 服务器不支持做网站是什么意思关键词优化公司费用多少
  • 做网站效果图如何去做网络推广
  • 下载别人dede网站模版站长素材音效下载
  • 婚纱手机网站制作站长之家seo
  • 东莞网站建设平台推广方式有哪些?
  • 中国网络营销网站搜索引擎优化seo方案
  • 网站建设要后台吗百度seo优化及推广
  • 网上书城网站开发说明书链接优化方法
  • 富顺网站建设关键字c语言
  • 专业的企业级cms建站系统网络游戏推广怎么做
  • 重庆专业微网站建设百度下载官方下载安装
  • 做网站做的seo外链自动群发工具
  • ui素材seo工具大全
  • 什么网站是专门做艺术字的互联网营销推广公司
  • 天津建设工程信息网中标公告广州百度首页优化
  • 长春网站建设工作推广技巧
  • 如何用二级域名做网站布奏长春关键词优化排名
  • 做网站关于我们合肥网络推广服务
  • 舟山网络科技有限公司云seo
  • 如何登陆工商局网站做变更网络营销教案ppt
  • 信用家装修平台官网石家庄手机端seo
  • pc访问手机网站跳转安康地seo
  • 做网站的收益在哪seo最新快速排名