什么是异常
是指用户在使用应用时,无法得到预期的结果。不同的异常带来的后果程度不同,轻则引起用户使用不悦,重则导致产品无法使用,从而使用户丧失对产品的认可。
为什么要处理异常
增强用户体验
远程定位问题
无法复现问题,特别是移动端,各种原因,可能是系统版本,机型等等
前端有哪些异常
异常
频率
JavaScript 异常(语法错误、代码错误)
经常
静态资源加载异常(img、js、css)
偶尔
Ajax 请求异常
偶尔
promise 异常
较少
iframe 异常
较少
如何捕获异常
try-catch
try-catch 只能捕获同步运行错误,对语法和异步错误却捕获不到。
1、同步运行错误
try {
kill;
} catch(err) {
console.error('try: ', err);
}
结果:try: Ref
基于 tristana 这套项目模板,引导大家如何创建列表展示,搜索,自动处理 loading 状态等。全部代码在仓库下。
最终效果:
网站效果预览:https://order.downfuture.com
开始之前
确保 node 版本是 8.4 或以上
用 cnpm 或 yarn 能节约你安装依赖的时间
Step 1. 安装 tristana 并创建项目
$ git clone https://github.com/Cherry-Team/tristana.git
$ cd tristana
$ cnpm i
$ npm start
浏览器会自动开启,并打开 http://localhost:8080
Step 2. 生成 Dashboard 路由
我们要新增路由,新建页面文件和在 routeConfig 引入该文件即可。
新建 src/pages/Dashboard/inde
前言
最近公司要在小程序上实现签字笔迹追踪,看了下网上关于 Taro 如何实现的文章,代码都很乱,很杂,所以,想记录下自己是如何实现的,并附上源码。
效果演示
源码
index.js
import Taro, { Component } from '@tarojs/taro';
import { View, Canvas } from '@tarojs/components';
import './index.less';
// 图片url(或filepath)转base64
const fileTobase64 = path => {
return 'data:image/jpeg;base64,' + Taro.getFileSystemManager().readFileSync(path, 'base64');
};
// 签字轨迹
const historyT
什么是 HMR
是指 Hot Module Replacement,缩写为 HMR。对于你需要更新的模块,进行一个"热"替换,所谓的热替换是指在不需要刷新页面的情况下,对某个改动进行无缝更新。如果你没有配置 HMR,那么你每次改动,都需要刷新页面,才能看到改动之后的结果,对于调试来说,非常麻烦,而且效率不高,最关键的是,你在界面上修改的数据,随着刷新页面会丢失,而如果有类似 Webpack 热更新的机制存在,那么,则是修改了代码,不会导致刷新,而是保留现有的数据状态,只将模块进行更新替换。也就是说,既保留了现有的数据状态,又能看到代码修改后的变化。
总结:
加载页面时保存应用程序状态
只更新改变的内容,节省调试时间
修改样式更快,几乎等同于在浏览器中更改样式
安装依赖
$ npm install webpack webpack-dev-server --save-dev
packag
最近迫于签字结果返回太慢,所以需要把旋转图片由原先后端处理改为前端处理,查阅文档,研究一番,发现小程序上旋转,主要是通过 canvas 的 translate、rotate 完成。
Canvas 坐标系统,由上图可得,Canvas 2D 环境中坐标系统和 Web 的坐标系统是一致的,有以下几个特点:
坐标原点 (0,0) 在左上角
X 坐标向右方增长
Y 坐标向下方延伸
伪代码
wx.canvasToTempFilePath({
x: 0,
y: 0,
canvasId: 'myCanvas',
success: (res) => {
wx.getImageInfo({
src: res.tempFilePath,
success: (imageRes) => {