type
status
date
slug
summary
tags
category
icon
password

概览

在vite中使用less | sass:
在style标签注明:

scoped

scoped实现组件的私有化,让当前的style只属于当前模块
 
DOM结构中可以看到,vue通过在DOM结构以及css样式上添加唯一标记data-v-hash的方式(这个工作是由 PostCSS 转译实现的),来实现组件样式私有化,不污染全局的作用
notion image

scoped的渲染原则

  1. 给HTML的DOM节点加上一个不重复的data属性(形如data-v-7ba5bd90)来表示他的唯一性
  1. 在每句css选择器的末尾(编译后生成的css语句)加上一个当前组件的data属性选择器来私有化样式
  1. 如果组件内包含其他组件,只会给其他组件的最外层标签上加上当前组件的data属性

案例演示-样式穿透:deep()

修改Element-ui里的input样式,发现无法生效
notion image
 
这是因为我们写了scoped,它在进行PostCss转化的时候,把元素选择器默认放在了最后
notion image
 
Vue提供了样式穿透:deep(),它的作用就是用来改变属性选择器的位置
notion image

BEM架构

BEMBlockElementModifier的首字母缩写,分为块层、元素层、修饰符层,它是一种css命名规范。element-ui也是使用的这种架构。
命名约定的模式如下:
block代表更高级别的抽象或组件
block_element代表.block的后代,用于形成一个完整的.block整体
block--modifier代表.block的不同状态或不同版本

复刻一个bem架构

全局扩充sass

组件用法

《野鸽》学习Vue3第十节:Vue3常用的生命周期
衔蝉
衔蝉
一个普通的干饭人🍚
公告
type
status
date
slug
summary
tags
category
icon
password
欢迎来到衔蝉的博客小站✨
这里是我的个人学习、生活记录
--- 免责声明 ---
⚠️ 本站内容仅代表个人观点
⚠️ 本站内容仅供学习参考使用
--- 关于我 ---
我要如加菲猫一般地活着
一大碗杂碎面
就能换来一个艳阳天🌻