首页 > 作文

【前端知识体系

更新时间:2023-04-07 06:55:23 阅读: 评论:0

1.如何解决css的模块化问题?

使用less,sass等css预处理器使用postcss插件(postcss-import/precss)使用webpack处理css(css-loader + style-loader)

2.postcss是什么?

postcss是一个平台,具体要取决于这个平台上面的插件可以做什么常用的插件如下
        //  1. 可以添加属性前缀,适应所有的浏览器        const autoprefixe首都博物馆观后感r = require('autoprefixer');        // 2. 将所有的import 导入进来的模块全部合并为一个文件         const atimport = require('postcss-import');        // 3.  实现代码的压缩优化      开学第一节课   const cssnano = require('postcss-cssnano');        // 4. cssnext提前使用css的高级语法         const cssnext = require('postcss-cssnext');     魏晨是哪里人   // 5. precss 类似于sass的语法处理         cons湖北科技学院官网t precss = require('precss')

3.import实现模块的合并(模块分开,提前合并)
4.css语法检查,兼容性检查
5.压缩文件

3.css modules是什么?如何使用?

解决类名冲突的问题使用postcss或者webpack等构建工具进行编译在html模板中使用编译过程产生的类名(对象.类名的方式来获取)

4.为什么使用js来引用,加载css?

js作为入口,管理资源具有天然优势(html,css本身是无法管理模块和资源的)将组件的结果、样式、行为封装到描写水的句子一起,增强组件内聚(减少代码耦合)可以做更多的处理(webpack,使用css modules 解决了命名的冲突问题)

5. postcss的实现原理说一下?

[!note]
postcss是一个通过js插件转换样式表的工具,它本身并不是一门新的css语言,而是一个平台或者是生态心态,提供插件扩展服务即js api,开发者可以根据这些接口,定制开发插件,
目前比较流行的插件工具如:autoprefixer 、stylelint 、cssnano。

5.1 解析步骤

将css解析成抽象语法树(ast树)将ast树”传递”给任意数量的插件处理将处理完毕的ast树重新转换成字符串

5.2 处理机制

source string → tokenizer → parr → ast → processor → stringifier

5.2.1 tokenizer

[!note]
将源css字符串进行分词

举个例子:
.classname { color: #fff; }
通过tokenizer后结果如下:

[    ["word", ".classname", 1, 1, 1, 10]    ["space", " "]    ["{", "{", 1, 12]    ["space", " "]    ["word", "color", 1, 14, 1, 18]    [":", ":", 1, 19]    ["space", " "]    ["word", "#fff" , 1, 21, 1, 23]    [";", ";", 1, 24]    ["space", " "]    ["}", "}", 1, 26]]

以word类型为例,参数如下:

const token = [     // token 的类型,如word、space、comment    'word',     // 匹配到的词名称    '.classname',     // 代表该词开始位置的row以及column,但像 type为`space`的属性没有该值    1, 1,     // 代表该词结束位置的row以及column,    1, 10]

5.2.2 parr

[!note]
经过tokenizer之后,需要parr将结果初始化为ast

this.root = {    type: 'root',    source: { input: {css: ".classname { color: #fff; }", hasbom: fal, id: "<input css 1>"},                   start: { line: 1, column: 1 } ,                  end: { line: 1, column: 27 }    },   raws:{after: "", micolon: fal}   nodes // 子元素}

5.2.3 processor

经过ast之后,postcss提供了大量js api给插件用

5.2.4 stringifier

插件处理后,比如加浏览器前缀,会被重新stringifier.stringify为一般css。

6.谈一下你对前端工程化的理解?

参考博客:

本文发布于:2023-04-07 06:55:21,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/62d9df045d95c273780459f89715f8a6.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:【前端知识体系.doc

本文 PDF 下载地址:【前端知识体系.pdf

标签:插件   语法   是一个   前缀
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图