```
2.熊欣按照上面的写法一直报错:element.loader.split is not a function,无法正常显示图片,原因是webpack中的loader配置有误
```
{
test: /\.(png|jpg|jpeg|gif)$/,
loader: ['url-loader?limit=8192'],
}
改为:
{
test: /\.(png|jpg)$/, //匹配.png或.jpg结尾
loader: 'url?limit=8192'
}
```
3.ES6 模块与 CommonJS 模块的差异
- CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。
- CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。
第二个差异是因为 CommonJS 加载的是一个对象(即module.exports属性),该对象只有在脚本运行完才会生成。而 ES6 模块不是对象,它的对外接口只是一种静态定义,在代码静态解析阶段就会生成。
4.this和event.target的区别:
js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素;
e是事件对象。
event.target表示发生点击事件的元素;
event.target表示发生点击事件的元素;
this表示的是注册点击事件的元素
this 等于 e.currentTarget
this是所有函数原生具有的.进入函数时,this已经直接有了目标对象.
而e.target通过e再寻找target,中转了一下
2017年07月19日 星期三
1.退款金额验证
```
//必须包含两位小数
var reg = /^(([1-9]+)|([0-9]+\.[0-9]{1,2}))$/;
//小数或者整数
var reg = /^([1-9]\d*|0)(\.\d{1,2})?$/;
```
2017年06月06日 星期二
从微信商城,我的--》点击退货退款---》进入退货退款列表,每进入一次退货退款的商品都会翻倍,但接口返回的数据并没有增加,原因是使用下面的方法将数据进行了缓存,这种写法数组中有可能重复加载
```
returnsData: [...state.returnsData, ...action.selectReturnsData.data.list]
```
解决办法:采用lodash.union处理数组合并
```
import union from 'lodash/union';
returnsData: union(state, action.selectReturnsData.data.list)
```
### 潜客发券
1.js动态添加的DOM元素因为时序的问题导致无法获取到dom元素,致使点击事件失效,jq的解决办法用事件代理,步骤
- 先找到父元素再给父元素添加on方法
- on方法传递三个参数,第一个参数是事件,第二参数是事件响应的元素,第三个是事件调用的回调函数
```
$('.swiper-wrapper').on('blur','.verification-code', function (e) {
e.stopPropagation();
if (validateSMS($('.verification-code').val()) == true) {
$('.prompt-msg').html(' ');
} else {
$('.prompt-msg').html(validateSMS($('.verification-code').val()));
}
});
```
2.领取优惠券页面:获取短信验证码成功,不输入验证码,点击领取优惠券,提示:传入参数错误。解决办法:在点击领券的按钮中做判断,判断手机号或者验证码是否为空,如果为空就直接返回,并且给提示信息,如果不为空再调用领取优惠券的接口领券
3.jq给元素添加属性和删除属性的方法,注意是属性不是css样式
```
//添加属性
$('.get-coupon').attr("disabled", "disabled");
//移除属性
$('.get-coupon').removeAttr('disabled');
```
4.通过params动态的改变swiper的值
```
mySwiper.params.direction = localStorage.getItem('direction');
```
2017年6月9日 星期五
1.rem布局正确的代码。讲解rem布局好的网址:http://www.cnblogs.com/noobfly/p/6207832.html。
```
(function () {
size();
window.onresize = function () {
size();
}
function size() {
var winW = document.documentElement.clientWidth || document.body.clientWidth;
//7.5是怎么来的呢?当然是根据设计稿的横向分辨率/100得来的,除以100是为了更好的计算,没有任何理由。
//如果设计稿基于iphone6,横向分辨率为750,body的width为750 / 100 = 7.5rem
//如果设计稿基于iphone4/5,横向分辨率为640,body的width为640 / 100 = 6.4rem
//布局时,设计图标注的尺寸除以100得到css中的尺寸
document.documentElement.style.fontSize = winW / 7.5 + "px";
}
})();
```
2.ps打开标尺的快捷键:ctrl+r
3.ps切图最好都保存为web格式的
4.可以将设计图缩放到和手机差不多大小的尺寸来对比看做的网页是否符合设计图
6.从psd中扣取图片的步骤
- 选中要扣取的图层
- 右键复制图层
- 选择新建图层
- 扣取图层,并存储为web格式
7.文字换行可以在标签里写