为什么不把 css 样式写在在 .vue 文件中

为什么不把 css 样式写在在 .vue 文件中
看过很多 vue 项目的代码, 发现很多人喜欢把样式写在组件了, 其原因大部分是为了方便, 好维护, 也很多人喜欢滥用scoped属性, 官方的 vue-hackernews-2.0 的实例也是这么做的, 但是个人却不太喜欢这么做, 原因有以下几点:

  1. 构建速度会变慢
    写在组件的 style 里的样式会先经过vue-loader再走less-loader或者css-loader, 无形中增加了编译时间

  2. 在用了 scope 属性后, 生成的 js 文件和 css 文件都会正常臃肿一些
    scope 属性, 其实就是在经过vue-loader编译的时候, 组件模版的对应元素和 css 样式添加一个随机的属性, 这样会造成在代码中添加大量类似data-v-33053b70这样的代码上去, 无形中使打包后的文件变大, 组件越多, 越明显

  3. scope 属性, 对当前组件不存在的元素不起作用
    原因同上条, 这种情况在用了组件库的情况下, 但是需要修改组件库组件样式时, 会经常遇到

  4. 在用了 scope 属性后, css 解析效率会变低
    css 中, 属性选择器的效率是最低的, 特别是直接用元素选择器的情况下

个人的解决方法:

样式统一管理, 绝对不将样式写的到处都是

如上面截图中, style.less 文件是入口文件, 负责引入其他各个子样式文件, 最后由 App.vue 根组件引入, home 文件夹下所有以下划线开头的文件为各个组件的样式,
如一些 less 配置, 可以放在 _base.less 文件里, 布局样式可以放在 _layout.less 文件里, 其他的一个路由组件一个文件, 再配合现在编辑的分屏功能, 也是一样可以很快定位到相关文件, 甚至一些编辑器, 可以直接从模版中跳到对应的样式文件

其实上面都是废话, 个人就是单纯不想把样式写在组件里而已, 如果你觉得这个方法不错, 可以借鉴改进, 如果你还是觉得写在组件里好, 也可以继续写在组件里

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值