pb-cheung
pb-cheung
cli -p /projects/xxx StatusCodeError: 400 - "{\"code\":40000,\"error\":\"Error TypeError: Path must be a string. Received undefined\"}"
1. 大多数项目诉求是直接获取图片,修改了下封装添加了wxmlToCanvasToImg函数 2. `type=2d`的canvas获取context为异步过程,添加获取上下文成功回调 ~~3. 文字宽度并没有真正动态布局,在canvas中重新计算文字宽度修改xom中的宽度,绘制时候判断不超出父元素允许换行~~(暂不添加)
### 安装 `npm install --save @types/weapp-api` 很简单,安装后即可使用。 ### 原理 #### WebStorm代码补全功能 WebStorm支持代码补全、语法提示、关键字高亮,其**原理**是读取项目所有的文件并给其中的函数和方法建立索引,编码中再使用到函数名IDE就会有相应的补全提示(没有语法提示和关键字高亮)。 #### WS External Libraries WS支持可以下载外部库文件到本地作为声明定义文件。 打开`Preferences | Languages & Frameworks | JavaScript | Libraries`,可以点击`Add`配置项目或者全局的库文件,或者点击download,会出现TypeScript社区标准的所有声明文件列表,找到小程序API对应的声明文件`weapp-api`下载即可。 在这个界面可以看到WS的一个默认设置,`node_modules`目录中的所有文件即项目依赖文件被添加为Libraries类型为`predefined`,WebStorm也会对其进行索引,并用于代码提示。每次安装或者删除npm包时,底部会有一定时间显示`indexing`也可说明。说以我们通过npm install将定义文件安装到`node_modules`目录也是可以的。 #### @types/weapp-api...
推荐使用[vue-focus](https://www.npmjs.com/package/vue-focus)这个`自定义指令`组件。 ### 用法 ```html ``` 通过改变变量isFocus的值来控制表单的获焦失焦状态。 ``` isFocus=true //获得焦点 isFocus=false //失去焦点 ``` ### 原理 利用vuejs的[自定义指令](https://cn.vuejs.org/v2/guide/custom-directive.html)实现,其核心代码如下: ```javascript var focus = { inserted: function(el, binding) { if (binding.value) el.focus(); else el.blur(); },...
### 匹配URL ``` javascript var strRegex = "^((https|http)?://)(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-z_!~*'()-]+.)*)([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]."; var rule = new RegExp(strRegex,"ig"); var url = http://www.qq.com console.log(rule.test(url)); ``` ### 匹配URL链接中的hash值 ``` javascript location.href.replace(/#[\d\w\=\?\.\&]+/,"") ``` --- ### 去除字符串中的空格 ``` javascript...
## 1.Promise介绍 >Promise是ES6中新添加的异步编程方案,内置对象。 >其`优点`是,有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的`回调函数`。此外,Promise对象提供了统一的接口,使得异步操作更加容易。 所谓Promise,就是承诺的意思,代表了未来某个将要发生的时间。想起了《权力的游戏》中的Ned Stark的“I promise.”,Sansa Stark的“father always promise. ” ### 状态 #### (a)Promise对象有三个状态。 `Pending`(等待的,未决的,进行中),`Resolved`(已解决的,已完成的)、`Rejected`(拒绝的,已失败)。 #### (b)状态转变。 状态转变只有以下两种情况。 ``` Pending --> Resolved Pending --> Rejected ``` ## 2.用法 ES6中Promise对象是一个`构造函数`,用来生成Promise实例。...
[Vuex官方中文文档](https://vuex.vuejs.org/zh-cn/) 文档核心内容提炼。 # Vuex是一个状态管理模式 ## State >Vuex使用单一状态树,用一个对象包含了全部的应用层级状态。 ## Getters >Vuex允许我们在store中定义【getters】(可以认为是store的计算属性)。Getters接受state作为其第一个参数: ```javascript const store = new Vuex.Store({ state: { ... }, getters: { doneTodos: (state) = > { return state.todos.filter(todo =>...
# 比Grunt更好用的前端自动化工具——Gulp  - 前端构建工具 - 基于node.js - 流式 ## 一、安装 全局安装: ``` npm install -g gulp ``` 项目目录中安装: ``` nmp install --save-dev gulp ``` 编辑package.json文件, 或者执行 ``` npm init...
 #### 方法有两种: 1. 根据浏览器特性来判断 2. 根据UA来检测 ##### 具体使用哪种方法要看具体需求的场景 **场景一:**为了让用户有较流畅完整的体验,在站点提示用户使用chrome或者IE,这种场景对浏览器类型的判断并非特别严格,可以使用检测UA的方法。(因为很多浏览器厂商会篡改UA标识)。 针对此场景举个栗子: *根据不同浏览器对API或标准实现的不同来判断浏览器,接着做相应兼容性操作。 ``` javascript var button = document.getElementById("button"); if(button.addEventListener){ button.addEventListener("click", handler, false); }else{ button.attachEvent("onclick", handler); } function handler(event){ var src...