} 通过cdn方式引入js、css文件,将不怎么需要更新的第三方库脱离webpack打包,不被打入bundle中,从而减少打包时间,但又不影响运用第三方库的方式,例如import方式等。 const HtmlWebpackExternalsPlugin = require('html-webpack-externals-plugin'); module.exports={ plugins: [newHtmlWebpackExternalsPlugin({ externals...
因此,为了提高性能,尽量使用函数组件。 然而函数组件有个最大的问题就是没有状态state,所以react官方出了个hooks来解决这个问题。 项目中最常用的几个hook: useState 1. useState最好写到函数的起始位置,便于阅读 2. useState严禁出现在代码块(判断、循环)中 3. useState返回的函数(数组的第二项),引用不变(节约内...
class A {//属性表达式prop1 = 1;//get方法get value() { console.log('Getting the current value!');returnthis.prop1; }//set方法set value(newValue) { console.log('Setting the current value!');this.prop1 =newValue; }//箭头函数表达式arrowFunc = (...args) =>{ console.log(args); }...
由于私钥只有b才拥有,因此第三方无法获取私钥,自然无法对加密数据进行解密 问题:如果b向a发送数据的话 如果用公钥加密 但a没有私钥 所以无法解密 ;如果用私钥加密,a用公钥解密,但是第三方也能拿到公钥。 既然都不行,那该怎么解决呢? 对称加密+非对称加密 先使用非对称加密 得到公钥 再利用公钥生成一个传输秘钥 ...
一、基本类型检查 1.类型约束可以约束变量、函数参数、函数返回值 1 let age: number = 18; 2 age = 19; 3 function sum(a: number, b: number): number { 4 return a+b; 5 } 6 let num:numb
1.babel的由来 由于不同版本的浏览器能识别的ES标准不相同,就导致了开发者面对不同版本、不同内核的浏览器要使用不同的js语句,为了解决这样的问题,就有了babel,它可以把基于不同es标准书写的js语法,编译为统一的、能被各种浏览器识别的js语法。 2.babel的使用 babel本
摘要:loader与plugin的区别 loader的作用是将代码进行转换,比如less转成css,一个loader就是一个函数,接收的参数是上一个loader的返回值,loader进行一系列处理后 返回新的代码 plugin的作用是在webpack的编译流程中完成某些操作,比如当webpack编译启动时 阅读全文 ...
由于promise的状态一旦转成了成功态或者失败态,就不能再改变状态了,所以我们需要加个判断,只有当状态为pending等待态的时候,才能将状态改为成功或失败,所以当状态变为了成功,再去调用resolve的话,无法满足判断条件,就不会继续执行了。 0.0.2版 const PENDING = 'pending'; ...
Vue中响应式数据变化是观察者模式 每个响应式属性都有dep,dep存放了依赖这个属性的watcher,watcher是观测数据变化的函数,如果数据发生变化,dep就会通知所有的观察者watcher去调用更新方法。因此, 观察者需要被目标对象收集,目的是通知依赖它的所有观察者。那为什么watcher也要存放dep呢?是因为当前正在执行的watcher需要知道...
plugin的作用是在webpack的编译流程中完成某些操作,比如当webpack编译启动时,控制台输出一句话表示webpack启动了,plugin是一个带有apply方法的对象,apply方法的参数是compiler,在apply中注册compiler对象的钩子函数,钩子函数在官网中有相应的描述。 loader 基本配置 ...