Vue style里面使用@import引入外部css, 作用域是全局的解决方案

问题描述

使用@import引入外部css,作用域却是全局的

<template>

</template>

<script>
    export default {
        name: "user"
    };
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
@import "../static/css/user.css";
.user-content{
  background-color: #3982e5;
}
</style>

Add "scoped" attribute to limit CSS to this component only

这句话大家应该是见多了, 我也使用scoped, 但是使用@import引入外部样式表作用域依然是全局的,看了一遍@import的规则后, 进行初步猜测,难道是@import引入外部样式表错过了scoped style?

又回想到此前看过的前端性能优化文章里面都有提到,在生产环境中不要使用@import引入css,因为在请求到的css中含有@import引入css的话,会发起请求把@import的css引进来,多次请求浪费不必要的资源。

@import并不是引入代码到<style></style>里面,而是发起新的请求获得样式资源,并且没有加scoped


&lt;style scoped&gt;
@import "../static/css/user.css";
&lt;/style&gt;

我们只需把@import改成<style src=""></style>引入外部样式,就可以解决样式是全局的问题


&lt;style scoped src="../static/css/user.css"&gt;
&lt;style scoped&gt;
.user-content{
  background-color: #3982e5;
}
&lt;/style&gt;

整体代码如下:


&lt;template&gt;

&lt;/template&gt;

&lt;script&gt;
    export default {
        name: "user"
    };
&lt;/script&gt;

&lt;!-- Add "scoped" attribute to limit CSS to this component only --&gt;
&lt;style scoped src="../static/css/user.css"&gt;
&lt;style scoped&gt;
.user-content{
  background-color: #3982e5;
}
&lt;/style&gt;

参考链接

MDN Web技术文档 @import

原文地址:https://segmentfault.com/a/1190000012728854

原文地址:https://www.cnblogs.com/lalalagq/p/9960186.html

时间: 2024-10-30 08:23:42

Vue style里面使用@import引入外部css, 作用域是全局的解决方案的相关文章

&lt;link&gt;和@import url()引入外部css文件的区别

<link>和@import url()引入外部css文件的区别:标题中的两种方式都可以引入外部css文件,关于它们的基本用法这里就不多介绍了,具体可以参阅相关阅读.相关阅读:(1).<link>标签可以参阅HTML的<link>标签一章节.(2)[email protected] url()可以参阅css的@import url用法简单介绍一章节.下面介绍一下这两者的比较明显的区别.(1).加载机制不同,link方式是首先加载完css文件,然后再加载页面,而@impo

久未更 ~ 五之 —— 引入外部CSS样式表 小节

> > > > > 久未更 系列一:在html中引入外部css样式表 1 //引入外部css样式表 2 //<lilnk>要放在<head>标签的第一行,否则不起作用 3 //如下 4 <head> 5 <link rel="stylesheet" type="text/css" href="waibu.css"> 6 <meta charset="ut

html引入外部css文件和js

有时候打死也引入不了外部css文件和js文件  l'm angry. 今天就写他一写. 引入css <link type="text/css" rel="stylesheet" href="相对路径比较好"/> 引入js<script type="text/javascript" rel="stylesheet" src="相对路径"></script>

wordpress主题制作:引入外部CSS样式文件和JS脚本文件

wordpress不建议修改模板文件header.php引入样式文件和JS文件,建议通过wp_head()和wp_footer()函数引入相关的内容. 一.显示标题 二.通过'wp_enqueue_scripts'引入scripts and styles 三.通过add_action()的"wp_head"钩子 以2019主题为例,在functons.php中相关的代码: 一.显示标题 在twentynineteen_setup()中, add_theme_support( 'titl

IE11下不能引入外部css的解决方法

原: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="X-UA

CI框架引入外部css和js文件

首先在项目根目录下建立assets文件夹,在这个文件夹下再建立css和js文件夹分别放置css和js文件 然后,在项目根目录下建立.htaccess文件 内容如下: RewriteEngine on      RewriteCond $1 !^(index\.php|images|robots\.txt|js|css|upimg|artDialog|style|sphinx_auth|assets)      RewriteRule ^(.*)$ index.php/$1 [L] 把上面的ass

wordpress主题制作:引入外部CSS样式文件和JS脚本文件(2)-要不要注册样式表(未完待续)

注册和排队样式表 添加动态内联样式:wp_add_inline_style() 检查样式表的排队状态:wp_style_is() 注销样式文件:wp_deregister_style() wp_dequeue_style() 三个动作钩子 wp_enqueue_scripts 用来在网站前台加载脚本和CSSadmin_enqueue_scripts 用来在后台加载脚本和CSSlogin_enqueue_scripts 用来在WP登录页面加载脚本和CSS 原文地址:https://www.cnbl

vue项目引入自定义.css的样式文件

ES6的引入方式: .vue文件中 css文件引入 <template></template> <style scoped> @import "../assets/common/common.css";//自定义.css的样式路径 </style> js文件的引入 在main.js中: import API from './assets/api/api.config.js' Vue.prototype.$API = API; P.S.:传

vue 引入通用 css

1.在入口 js 文件 main.js 中引入,一些公共的样式文件,可以在这里引入. import Vue from 'vue' import App from './App' // 引入App这个组件 import router from './router' /* 引入路由配置 */ import axios from 'axios' import '../static/css/global.css' /*引入公共样式*/ 2.在 index.html 中引入,这个不说了: 3.在 app.