Codog

关注微信公众号:Codog代码狗

0%

webpack的代码分割,可以将编译结果分为几个“块”输出,加载最少的js代码的同时又满足的功能需求,也适合于路由组件

常见方式:

  • 多入口

多入口,便会编译出多个输出文件,但单页应用一般为一个入口。

  • 配置webpack,自动将三方库打单独打包
1
2
3
4
5
6
7
8
9
module.exports = {
// ...
optimization: {
splitChunks: {
chunks: 'all'
}
}
// ...
}

这样如果某三方库被多个组件引用,那么它就会被单独打包,也保证组件功能代码简洁

  • 动态引入

使用import()方法,webpack会自动进行代码分割,如果想指定输出文件名,可以添加webpack注释:

1
import(/* webpackChunkName: 'common' */'./route1').then()

响应式图片——一种可以在不同的屏幕尺寸和分辨率的设备上都能良好工作以及其他特性的图片

阅读全文 »

块元素

特点:

  • 如果为设置宽度,则会自动充满父容器
  • 可以设置margin, padding
  • 如果未设置高度,则会自动适应内部元素的高度
  • 会自动单独占一行
  • 忽略vertical-align属性
  • 。。。

常见元素:div, p, form, header, ul, li, h1~h6等

行内元素

特点:

  • 跟随文档内容,不会自动换行
  • white-space控制
  • 忽略纵向margin,但横向margin及任意方向padding会生效
  • 无法设置宽度和高度
  • vertical-align控制
  • 。。。

常见元素:a, span, i, em, b等

还可以设置行内块元素:display: inline-block,这样既可以设置宽高,元素也会默认一行展示。

  1. toLocaleString方法
1
2
3
4
> 10154545450.42.toLocaleString('en-US')
< "10,154,545,450.42"
> (-1234567.8912).toLocaleString('en-US')
< "-1,234,567.891" // 注意小数位最多3位
  1. 正则匹配
1
2
3
4
5
6
7
const numberWithCommas = (x) => {
// 小数部分单独处理
var parts = x.toString().split(".");
// 或者 replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");
}
  1. 转为字符串数组处理

可能写的有点啰嗦😷

1
2
3
4
5
6
7
8
9
10
11
12
13
function format(number) {
const negative = number < 0
const parts = Math.abs(number).toString().split(".")
parts[0] = parts[0].split('').reverse().reduce((res, cur, index) => {
return `${cur}${index && (index % 3 === 0) ? ',' : ''}${res}`
}, '')
return (negative ? '-' : '') + parts.join('.')
}

format(12345.32433532) // 12,345.32433532
format(-12345.32433532) // -12,345.32433532
format(21341234) // 21,341,234
format(9) // 9