还未被加载的动态组件,其样式却被提前被注入到页面的head内了
ETTTTT opened this issue · 3 comments
ETTTTT commented
// tab1组件
<template>
<div class="tab">我是tab1组件</div>
</template>
<style >
.tab {
font-size: 30px;
}
</style>
// tab2组件
<template>
<div class="tab">我是tab2组件</div>
</template>
<style >
.tab {
color: red;
}
</style>
// 入口组件
<template>
<div id="app">
<div class="box">
<div @click="tab('tabOne')" class="btn">切换tab1</div>
<div @click="tab('tabTwo')" class="btn">切换tab2</div>
</div>
<component v-bind:is="currentTabComponent"></component>
</div>
</template>
<script>
import tabOne from './tab1.vue'
// tab2组件一开始还未被使用,但是组件内的样式却已经被注入到head内
import tabTwo from './tab2.vue'
export default {
components: {
tabTwo,
tabOne,
},
data() {
return {
currentTabComponent: 'tabOne'
}
},
methods: {
tab(val) {
this.currentTabComponent = val
}
}
}
</script>
<style>
.box{
display: flex;
justify-content: center;
align-items: center;
width: 100%;
}
.btn{
font-size: 20px;
text-align: center;
flex: 1;
background: #ccc;
margin: 10px;
}
</style>
ETTTTT commented
ETTTTT commented
使用webpack启动的项目不会有这个问题,
使用vue-cli创建的项目,启动会有这个问题
ETTTTT commented
组件没有被加载之前,组件的样式被提前注入到head内了