lbp的blog

纸上得来终觉浅,绝知此事要躬行

0%

css是用来服务于html,给html增加样式。一般情况下我们使用外部样式表,在html中定义类名,使用选择器进行样式绑定。
css样式是没有作用域而言的,最终生效的样式效果取决于权重。
为了样式的健壮性,防止样式冲突。
一般而言我们使用scss或者less等预处理器,嵌套书写样式表。
这种形式,不便于项目的维护。当需求进行变更时,css的查找修改需查看一层层的嵌套结构。
理想状态下,我们开发一套组件可以中,我们可以随意为其中的元素命名,没有复杂的嵌套,不用担心是否与组件以外的元素发生冲突
bem解决这一问题的思路是:按照组件名是唯一性的思路,在对元素进行命名是包含组件名来保证组件内部的样式不会和外部冲突。
约定形式如下:
block__element--modifier

阅读全文 »

hexo基本使用,next(7.8.0)主题配置。各种使用技巧,常用问题

阅读全文 »

axios 是前端使用的主流网络请求库。本文从源码角度进行解读,主要分析浏览器环境下具体实现。

node环境下原理相同,区别仅是 axiosXMLHttpRequestshttp 的封装不同。

主要是对axios功能点从源码角度的解读,基于v0.21.0版本

阅读全文 »

软件开发中,常见的一种流程是 开发->部署->测试->交付。其中,前三个环节会重复多次。

对于研发人员来说,频繁的低效,非自动部署很浪费时间。本文提供一种简易脚本来进行自动化一键部署。

ci会有多种解决方案,本文方案总结来说就是

  1. 本地打包 - vue-cli-service build
  2. 上传本地文件到服务器 - 使用expect工具编写自动交互脚本

最后会简单介绍一下 expect 工具的使用。

阅读全文 »

web缓存策略学习,验证(nginx)。
什么是强制缓存和策略缓存?
强制缓存的条件是什么?
策略缓存下,客户端和服务端请求涉及哪些header?

阅读全文 »