vue-cli使用心得
相比jquery有更高的性能
双向数据绑定极其方便快捷
使用vuex进行状态管理极其方便
使用axios发送请求
使用stylus进行编写css方便快捷
打包编译的时候cdn配置 将打包的css js 自动添加前缀
transform的兼容在在移动比较差 使用的时候记得添加前缀 oppo手机坑
margin-top作用在父元素的 使用border-top 1px solid tranparemt 失效 建议使用 伪元素 befor content 你懂的
苹果手机不怎么支持fiexd定位 使用的时候小心坑
资源过大的时候 使用路由懒加载
html2canvas 生成图片的时候图片不能跨域
html2canvas可以跨域
使用img crossorigin 属性canvas可以获取到 图片数据
image.setAttribute(‘crossorigin’, ‘anonymous’)
1 | html2canvas(document.querySelector("#capture"), |
坑:
需要生成图片的div 不能display:none
只能用定位的方式将div隐藏掉 否则不能生成图片 生成一张空白的 png
解决:
1.`将图片进行编码 变成base64 然后使用编码过后的base64进行生成图片 将生成的资源放到cdn`
缺点:打包文件过大 用户体验不好
优点:减小服务器压力
~~2.`图片不需要跨域 直接将图片放到服务器上`~~
缺点;服务器压力大
优点:用户体验比前者好
其他解决办法:
`使用canvas进行自己封装绘制`
`缺点 开发周期长`
`优点:可以自己定义 比较自由`
px2rem的学习
px2rem不支持stylu语法 只能使用css语法 使用起来比较繁琐 stylu
将1rem = 100px 设置成转换单位 在标准设计图纸上面就可以进行 按照缩小一百倍的尺寸进行还原设计图1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34/**
* @param {Boolean} [normal = false] - 默认开启页面压缩以使页面高清;
* @param {Number} [baseFontSize = 100] - 基础fontSize, 默认100px;
* @param {Number} [fontscale = 1] - 有的业务希望能放大一定比例的字体;
*/
const win = window;
export default win.flex = (normal, baseFontSize, fontscale) => {
const _baseFontSize = baseFontSize || 100;
const _fontscale = fontscale || 1;
const doc = win.document;
const ua = navigator.userAgent;
const matches = ua.match(/Android[\S\s]+AppleWebkit\/(\d{3})/i);
const UCversion = ua.match(/U3\/((\d+|\.){5,})/i);
const isUCHd = UCversion && parseInt(UCversion[1].split('.').join(''), 10) >= 80;
const isIos = navigator.appVersion.match(/(iphone|ipad|ipod)/gi);
let dpr = win.devicePixelRatio || 1;
if (!isIos && !(matches && matches[1] > 534) && !isUCHd) {
// 如果非iOS, 非Android4.3以上, 非UC内核, 就不执行高清, dpr设为1;
dpr = 1;
}
const scale = normal ? 1 : 1 / dpr;
let metaEl = doc.querySelector('meta[name="viewport"]');
if (!metaEl) {
metaEl = doc.createElement('meta');
metaEl.setAttribute('name', 'viewport');
doc.head.appendChild(metaEl);
}
metaEl.setAttribute('content', `width=device-width,user-scalable=no,initial-scale=${scale},maximum-scale=${scale},minimum-scale=${scale}`);
doc.documentElement.style.fontSize = normal ? '50px' : `${_baseFontSize / 2 * dpr * _fontscale}px`;
}
flex(false,100,1) // 调用函数进行适配 1rem = 100px
// 可以再厉添加 添加窗口监听事件 进行试试监听窗口的变化
不需要手动添加适口 代码会自动添加到当前html页面头部