• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

用DartSass替换NodeSass

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近在看vue-element-admin项目文档的时候发现有个叫Dart Sass的东西,这东西可以替换之前我经常的Node Sass,曾几何我们在很痛苦的装Node Sass,现在我们是时候跟Node Sass说在再见了。具体内容请大家查看 Node Sass to Dart Sass

升级教程

yarn remove node-sass

yarn add sass -D

在上文提到的文档教程中提到:在替换完Node Sass后,需要用::v-deep代替/deep/>>> (注:如果在css中直接这么写是没用作用的) 来进行样式穿透。最重要原因是 vue 3.0 RFC中指定的写法,我们这么写之后可以尽量的最大程度减少升级到Vue3的复杂度。

.a {
  >>> {
    .b {
      color: red;
    }
  }
}

/* 或者 */

.a {
  /deep/ {
    .b {
      color: red;
    }
  }
}

/* 修改为 */
.a {
  ::v-deep {
    .b {
      color: red;
    }
  }
}

不过我在读完 vue 3.0 RFC后发现,其实更推荐下面的写法

/* DEPRECATED */
::v-deep .bar {}

/* 用伪元素写法传入一个css选择器作为参数 */
::v-deep(.bar) {}

/* 上边的写法会编译为下边的样子 */
[v-data-xxxxxxx] .bar {}

此外还有两种scope css写法:
<style scoped> 代码快中使用 ::v-global(), 在这代码块中是全局范围

::v-global(.foo) {}

/* 被编译为 */
.foo {}

专门修改slot插槽中元素的样式,你在子组件中修改插槽中样式是没用的,因为传入组件的插槽内容输入父组件,而Scoped styling是在编译时确定的,我们在子组件中可以这么写

::v-slotted(.foo) {}

/* 编译为 */
.foo[v-data-xxxxxxx-s] {}

注意-s(感觉像是slot的缩写)后缀,这表明这个样式只针对于slot中的内容

参考资料


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Dart:解析html字符串发布时间:2022-07-14
下一篇:
Flutter-Dart语言SDK环境配置和遇到的错误解决发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap