解决vue 单文件组件中样式加载问题
在写单文件组件时,一般都是把标签、脚本、样式写到一起,这样写个人感觉有点不够简洁,所以就想着把样式分离出去。
采用import加载样式
在局部作用域(scoped)采用@import加载进来的样式文件,想法是美好的。以为这样加载进来的样式文件也只对当前组件有效;可现实是残酷的,这样加载进来的样式无法限制其作用域。
<style scoped> @import "样式文件"; </style>
解决方案
采用 src属性加载样式。
<style src="样式路径" scoped></style>
PS:关于vue单文件组件中样式的问题
在写单文件组件的项目时,遇到过这样的问题。某一个样式类,明明我只写了两个padding,但是在我用webpack
构建之后,莫名其妙的多出了很多其他的样式。
后来,无意中看见别人的提问中,说如何解决单文件组件中样式同名的问题。
我就想,会不会是不同的.vue文件里使用了同名类的原因。
于是,我在style标签后面加上了scoped这个关键字之后,再npm run build,果然好了。
原因:
不加scoped表示样式是全局共享的。
加上了scoped就是这个样式只能在这个.vue文件里面有效。
总结
以上所述是小编给大家介绍的解决vue 单文件组件中样式加载问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关推荐
-
iview在vue-cli3如何按需加载的方法
iview在官方文档上,对于使用脚手架vue-cli3的项目的使用只有一句话:"我们为最新的 Vue CLI 3 提供了相应的 iView 插件,如果你正在用 Vue CLI 3,可以直接在插件中搜索 iview,安装插件来使用." 老实说,第一次看到这说明,我是懵逼的--废话不多说,直接撩起袖子撸 vue-cli3有个命令vue ui打开添加插件搜索 vue-cli-plugin-iview,点击安装 按需加载安装后,vue-cli-plugin-iview会自动帮我们做好以下的配置
-
vuejs 单文件组件.vue 文件的使用
vuejs 自定义了一种.vue文件,可以把html, css, js 写到一个文件中,从而实现了对一个组件的封装, 一个.vue 文件就是一个单独的组件.由于.vue文件是自定义的,浏览器不认识,所以需要对该文件进行解析. 在webpack构建中,需要安装vue-loader 对.vue文件进行解析.在 sumlime 编辑器中,我们 书写.vue 文件,可以安装vue syntax highlight 插件,增加对文件的支持. 用vue-cli 新建一个vue项目,看一下.vue文件长什么样
-
Vue动态加载异步组件的方法
背景: 目前我们项目都是按组件划分的,然后各个组件之间封装成产品.目前都是采用iframe直接嵌套页面.项目中我们还是会碰到一些通用的组件跟业务之间有通信,这种情况下iframe并不是最好的选择,iframe存在跨域的问题,当然是postMessage还是可以通信的,但也并非是最好的.目前有这么一个场景:门户需要制作通用的首页和数据概览页面,首页和数据概览页面通过小部件来自由拼接.业务组件在制作的时候只需要提供各个模块小部件的url就可以了,可是如果小部件之间还存在联系呢?那么iframe是不好
-
详解Vue.js在页面加载时执行某个方法
jQuery中可以这样写 vue中,如果要达到相同效果,可以使用vue的生命周期函数,如create或者mounted 附上vue.js的生命周期函数执行流程 总结 以上所述是小编给大家介绍的Vue.js在页面加载时执行某个方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对我们网站的支持!
-
VUE DOM加载后执行自定义事件的方法
最近想用vue做一个小东西,谁知道一开始就遇到了一个棘手的问题: 首先我想在页面加载前通过ajax请求页面展示所需要的信息,于是我在created钩子函数里面请求了我想要的数据 created:function(){ var url="/indexitem"; var _self=this; $.get(url,function(data){ _self.items=data; }); $.get('/banner',function(data){ _self.banners=data
-
vue+axios+element ui 实现全局loading加载示例
实现全局loading加载 分析需求,我们只需要在请求发起的时候开始loading,响应结束的时候关闭loading,就这么简单 对不对? import axios from 'axios'; import { Message, Loading } from 'element-ui'; import Cookies from 'js-cookie'; import router from '@/router/index' let loading //定义loading变量 function st
-
vue移动端下拉刷新和上拉加载的实现代码
由于自身的项目比较简单,只有几个H5页面,用来嵌入app中,所有没有引入移动端的UI框架,但是介于能让用户在浏览H5页面时有下拉刷新和上拉加载,有更好的用户体验,自己写组件实现. 1.下拉刷新DropDownRefresh.vue <template lang="html"> <div class="refreshMoudle" @touchstart="touchStart($event)" @touchmove="
-
Vuejs 单文件组件实例详解
在之前的实例中,我们都是通过 Vue.component 或者 components 属性的方式来定义组件,这种方式在很多中小规模的项目中还好,但在复杂的项目中,下面这些缺点就非常明显了: 字符串模板:缺乏高亮,书写麻烦,特别是 HTML 多行的时候,虽然可以将模板写在 html 文件中,但是侵入性太强,不利于组件解耦分离. 不支持CSS:意味着当 HTML 和 JavaScript 组件化时,CSS明显被遗漏了 没有构建步骤:限制只能使用 HTML 和 ES5 JavaScript,而不能使用
-
Vue 路由切换时页面内容没有重新加载的解决方法
第二次进入页面,页面路由参数已经改变,但是页面内容不会刷新. 问题原因:在组件mounted钩子中调用的刷新页面内容,但测试发现这个钩子没有被调用.后来发现App.vue中使用了<keep-alive>: <template> <div id="app"> <keep-alive> <router-view></router-view> </keep-alive> </div> </t
-
vue src动态加载请求获取图片的方法
一. 加载本地图片 1.图片目录 2. 在data中配置图片路径 data() { return { formData: { avatar: require('@/assets/icon1524737568182.png'), motto: 'xxxxxxxxxx' }, routers: this.$router.options.routes } } 3. 在需要的地方引入图片 <div class="avatar"><img :src="formData
随机推荐
- 用批处理实现映射盘网络盘为固定盘符,请更改冲突的硬盘盘符
- jQuery对表单的操作代码集合
- Win7/Windows2003下IIS6.0、IIS7.5的伪静态组件安装和伪静态配置方法
- java eclipse 出现 xxx cannot be resolved to a type 错误解决方法
- 深入浅析ES6 Class 中的 super 关键字
- 利用客户端缓存对网站进行优化的原理分析第1/2页
- JSP计数器的制作
- C#怎么实现手机短信发送功能
- 学习JavaScript的最佳方法分享
- 快速学习MySQL索引的入门超级教程
- 关于跨站脚本攻击问题
- js判断浏览器是否支持html5
- JavaScript实现同时调用多个函数的方法
- php准确获取文件MIME类型的方法
- 禁止JQuery中的load方法装载IE缓存中文件的方法
- jQuery ui插件的使用方法代码实例
- jQuery中事件与动画的总结分享
- Bootstrap框架的学习教程详解(二)
- iscroll实现下拉刷新功能
- Android 模拟器的使用详细介绍