实践问题记录(一)

webpack报错:Cannot assign to read only property ‘exports’ of object

在js代码中使用了exports导出模块,然后使用import 去引用模块,然后给出提示module.exports属性是只读的
错误原因:模块规范类型使用出错;
require 和 module.exports 是commonjs 规范,适用于 nodejs 环境;import 和 export 是ES6规范,适用于浏览器;所以import 不能和 module.exports 混合使用

ajax请求 遮罩不生效解决方案

在beforeSend等调用遮罩代码未生效,但是有时数据加载缓慢可以看到一闪而过,debug也可以看到生效过程。
原因:渲染进程被阻塞;解决方案:async:true设置为异步。
GUI渲染线程与JS引擎线程互斥,同步时就被阻塞,异步时浏览器新开线程,回调js单线程。
浏览器线程:GUI渲染线程(渲染界面:HTML、CSS、DOM树、布局和绘制);JS引擎线程(js脚本代码,与GUI互斥);事件触发线程;定时器触发线程;异步http请求线程(可产生状态变更事件);
js单线程,浏览器多线程。将请求放在一个js的执行队列中依次执行。

js时间戳和unix时间戳

毫秒 – 秒;js获取方式new Date().getTime()

js进制转换

num.toString(radix),十进制转其他;parseInt(num, radix),其他转十进制

为什么datetime类型的值不能修改为null?有时候设置为’0000-00-00 0000:00:00’也不行呢?

数据库版本,5.7及其以上sql_mode=“ONLY_FULL_GROUP_BY”,这个配置严格执行了"SQL92标准"。
方法一:直接修改my.cnf(路径:/etc/my.cnf)即可 把sql_mode=""直接什么不要限制;
方法二:mysql5.7版本中有了一个STRICT mode(严格模式),而在此模式下默认是不允许设置日期的值为全0值的,所以想要解决这个问题,就需要修改sql_mode的值。

select @@global.sql_mode; 可以查看全局sql_mode的值。
set global.sql_mode=(select replace(@@global.sql_mode,'NO_ZERO_IN_DATE,NO_ZERO_DATE','')); 可以修改sql_mode。
// Err 1055 修改  不兼容sql_mode=only_full_group_by
set global.sql_mode=(select replace(@@global.sql_mode,'ONLY_FULL_GROUP_BY',''));

set global.sql_mode=(select replace(@@global.sql_mode,'NO_ZERO_IN_DATE,NO_ZERO_DATE,ONLY_FULL_GROUP_BY',''));

使用el-date-picker回显后无法更新数据

这种情况下使用的代码一般为:this.form.time1 = [‘2020-03-23’, ‘2020-04-04’];
回显赋值均正常,需要使用 s e t : t h i s . set:this. setthis.set(this.form,‘time1’,[‘2020-03-23’, ‘2020-04-04’]);

vue刷新当前页面

1、location.reload()、this.$router.go(0)这两种都是相当于按ctrl+F5 强制刷新那种,整个页面重新加载,会出现一个瞬间的空白页面,体验不好;
2、可以做一个空白页,跳过去,再带参数传递跳回来;不会出现空白,但是也不是非常理想;
3、provide / inject 组合(?原理)

// app.vue中,挂载provide
provide(){
    return {
        reload: this.reload
    }
}
// 使用的vue中
inject: ['reload']
// 使用时,this.reload()。

你可能感兴趣的:(实践)