JSON.sringify 和 JSON.parse
这是JS实现深拷贝最简单的方法了,原理就是先将对象转换为字符串,再通过JSON.parse重新建立一个对象。
但是这种方法的局限也很多:
不能复制function、正则、Symbol
循环引用报错
相同的引用会被重复复制
我们依次看看这三点,我们测试一下这段代码:
let obj = { reg : /^asd$/, fun: function(){}, syb:Symbol('foo'), asd:...阅读全文>>
var token='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJzYWx0XCI6XCJpYW1cIixcIm5hbWVcIjpcImFkbWluXCIsXCJ1c2VyTmFtZVwiOlwiYWRtaW5cIixcInN0YXR1c1wiOlwiRU5BQkxFRFwifSIsImV4cCI6MTYwNjg5MjE2OSwiaWF0IjoxNjA2ODkxMzA1fQ.j9E9v4SKIY4Fd49ywHiEvU3Ie163VR9GXSpf4lNBKjs';
let strings = token.split(".");
c...阅读全文>>
时间:2020-11-26
分类:
热度:
1506
class Storage {
// constructor(options) { } constructor() {
console.log('constructor')
}
&...阅读全文>>
时间:2020-11-19
分类:
热度:
1546
有个需求,现有oa 要加个页面,本地新建的html文件要联调并获取远程数据,要涉及跨域,跨域解决方案多种就不赘述了,用node简单实现这个功能
目录根目录新建server.js,如下:
const express = require('express');
const timeout = require('connect-timeout');
const {createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
// HOST 指目标地址 代理指向...阅读全文>>
时间:2020-11-16
分类:
热度:
1754
用 create-react-app 创建项目后
执行 npm run eject 暴露配置
启动项目就报错了:
React is not defined
jsx 运行时的 webpack 配置会在 eject 时候被删除
所以需要在 package.json 把配置加回来
// package.json
"babel": {
"presets": [
[
"react-app",
{
...阅读全文>>
时间:2020-11-12
分类:
热度:
1478
小程序ios正常访问没问题,安卓机请求服务器报"request:fail -2:net::ERR_FAILED"
目前判断下来是由于服务器的SSL证书是使用中间证书颁发的,而服务器中缺少中间证书导致小程序无法验证服务器证书链完整性
使用https://www.cnblogs.com/masahiro/p/13036627.html的方法补全证书后问题得到解决
我的是证书过期了,第一次遇到,去域名处重新申请证书替换即可阅读全文>>
时间:2020-11-11
分类:
热度:
1510
//换主题
theme(type) {
this.$store.commit('upDate', {themeType: type});
window.document.documentElement.setAttribute( "data-theme", type );
}
1.安装依赖
npm install node-sass sass-loader --save-dev
2.新建一个Scss文件_themes.scss,里面可以配置不同的主题配色方案
//当H...阅读全文>>
时间:2020-11-10
分类:
热度:
1515
1)优化 Webpack 的构建速度
使用高版本的 Webpack (使用webpack4)
多线程/多实例构建:HappyPack(不维护了)、thread-loader
缩小打包作用域:
exclude/include (确定 loader 规则范围)
resolve.modules 指明第三方模块的绝对路径 (减少不必要的查找)
resolve.extensions 尽可能减少后缀尝试的可能性
noParse 对完全...阅读全文>>
首先创建renderKey.js
const webpush = require('web-push');
//VAPID keys should only be generated only once.
const vapidKeys = webpush.generateVAPIDKeys();
console.log(vapidKeys.publicKey, vapidKeys.privateKey);
获取key后新建html文件引入js,如下
index.js
navigator.serviceWorker.register("sw.js").then(functio...阅读全文>>
时间:2020-10-27
分类:
热度:
2221
<Select defaultValue={ textInput[i]["option"][0]?textInput[i]["option"][0]['value']:''} key={ textInput[i]["option"][0]?textInput[i]["option"][0]['value']:''}>
{
textInput[i]["option"].map(item=>(
<Option key={item["value"]} val...阅读全文>>