首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我们在单个页面中调用相同的组件,vue 3是否多次加载css?如果不是,它是如何工作的?

如果我们在单个页面中调用相同的组件,vue 3是否多次加载css?如果不是,它是如何工作的?
EN

Stack Overflow用户
提问于 2022-02-28 06:56:51
回答 1查看 335关注 0票数 0

我的vue 3组件

代码语言:javascript
复制
<script setup lang="ts">
import { defineAsyncComponent, ref, Ref } from "vue";
import CookiesHelper from "@/utilities/cookies";
import { Banner as BannerType } from "@/interfaces/Banner";
import { usePackageStore } from "@/store/offers-package";
import { useInitDataStore } from "@/store/init-data";
import useGroupedData from "@/composables/grouped-data";


CookiesHelper.setCookies();

const isLoaded = ref(false);
const dataStore = usePackageStore();
const initDataStore = useInitDataStore();

let selectedApp: unknown;

switch (initDataStore.app) {
  case "app1":
    selectedApp = defineAsyncComponent(() => import("@/pages/app1.vue"));
    break;
  default:
    selectedApp = defineAsyncComponent(() => import("@/pages/app2.vue"));
}

dataStore
  .setDataPackage()
  .then(() => {
    isLoaded.value = true;
  })
  .catch((e: Error) => {
    console.log(e);
  });
</script>

<template>
  <div v-show="isLoaded">
    <component :is="selectedApp"></component>
    <link-tracking></link-tracking>
    <link-tracking></link-tracking>
  </div>
</template>

<style lang="scss">
#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>

我想了解,如果链接跟踪组件有css的作用域,那么css将只加载一两次?这实际上是如何编译的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-28 12:10:50

该CSS将只加载一次,与该组件的JS一样。

您可以拥有页面上每个组件的相同数量的实例,它只需要定义一个一次的。作用域样式或非作用域样式在此上下文中没有区别,Vue将生成相同的散列数据属性,它将应用于组件的每个实例,并将用于对该组件的CSS进行作用域。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71291505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档