前端开发
WangminzeSpk
这个作者很懒,什么都没留下…
展开
-
react 服务端渲染项目相关配置(typescript + nextjs + koajs + log4js + crypto + jest)
这是一个基于脚手架create-next-app 的应用// package.json"scripts": { "dev": "node ./server.js", "build": "next build", "start": "next start", "test": "jest" }, "dependencies": { "@zeit/next-css": "^1.0.1", "@zeit/next-less": "^1.0.1",.原创 2020-12-28 17:35:42 · 800 阅读 · 0 评论 -
前端项目使用 mocker-api 来模拟数据
1. 安装依赖:npm i mocker-api -D2. 在development模式对应的webpack配置下添加:before(app, server) { // console.log('MOCK', process.env) if(process.env.MOCK) { // mocker-api apiMocker(app, path.resolve(__dirname, '../mock')) }}3. 添加对应的mock数据接口:// moc原创 2020-12-14 17:31:26 · 1641 阅读 · 0 评论 -
React Native 安装项目错误集锦
1. ReactNative pod install卡在boost-for-react-native解决办法:在ios目录下Podfile文件中,头部加入以下代码,再pod install就可以下载下来了。pod 'boost-for-react-native', :git => 'https://gitee.com/damon-s/boost-for-react-native.git’2. 启动时报:java.lang.NoClassDefFoundError: Could not i原创 2020-08-15 13:52:37 · 325 阅读 · 0 评论 -
JS 枚举类型
工厂模式:const ALL = 0;/** * 枚举工厂 */export function enumFactory(arr = []) { const TEMP_ENUM = { ALL: ALL, EXTRA: { [ALL]: { label: '全部', value: ALL }, }, OPTIONS: [{ label:...原创 2020-03-19 17:42:24 · 2988 阅读 · 0 评论 -
防抖与节流 理解
防抖:控制最小执行间隔时间,在 指定的时间内 如果 再次触发 则刷新定时器。连续触发只执行一次。节流:控制最小执行间隔时间,在 指定的时间内 如果 再次触发 则当前触发失效。连续触发至少执行一次,执行次数 = 触发的总时长 / 间隔时间。...原创 2020-03-18 19:01:05 · 421 阅读 · 0 评论 -
CSS 小记
在chrome或者小程序中多行文本超出2行时显示省略字符...: .elli-text { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; // 显示两行} ...原创 2020-03-18 15:00:51 · 141 阅读 · 0 评论 -
微信小程序开发中使用 glup 监听 less 文件编译成 wxss
gulpfile.js 配置文件:const gulp = require('gulp');const { watch } = require('gulp');const less = require('gulp-less');const rename = require('gulp-rename');gulp.task('Less', function () { gul...原创 2020-03-16 16:02:47 · 318 阅读 · 0 评论 -
基于 react + react-router + typescript + webpack + babel + esLint 的项目配置
项目目录:package.json 文件配置:{ "name": "webpack-test", "version": "1.0.0", "description": "", "main": "./src/index.js", "scripts": { "dev": "webpack-dev-server --open --watch --config w...原创 2020-03-11 14:16:39 · 964 阅读 · 0 评论 -
VSCode 对 Webpack 配置 resolve alias 的路径智能提示
项目根目录下创建:jsconfig.json{ "compilerOptions": { "baseUrl": "./", "paths": { "@hoc/*": ["src/hoc/*"] } }, "exclude": ["node_modules", "dist"]}原创 2020-02-29 14:18:54 · 1143 阅读 · 0 评论 -
Webpack 速记
概念:模块打包工具 安装:npm i webpack webpack-cli -D 默认配置文件:webpack.config.js 模块解析依赖树支持语法(js): ES Module (export -> import) 同步加载模块:CommonJs ( module.exports -> require) eg: nodejs 注: 异步加载模块: AMD...原创 2020-03-10 14:01:44 · 220 阅读 · 0 评论 -
antd pro 解析 node_modules 第三方包中的 jsx 和 less
在config/plugin.config.js中添加如下代码:config.module .rule('compile') .test(/\.(js|jsx)$/) .include .add(path.join(__dirname, '../node_modules/npm-package-name')) .end() ...原创 2020-02-25 16:17:58 · 1126 阅读 · 0 评论 -
按需加载npm 中的 react 组件
webpack 配置:node_modules 中 js/jsx 加载器配置:{ test: /\.(js|jsx)?$/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env', '@babel/preset-react'], plugins: [...原创 2020-02-10 13:51:55 · 318 阅读 · 0 评论 -
Gruntfile.js 配置 npm 打包简化版
// 安装依赖// npm install -g grunt-cli// npm install --save-dev grunt// npm install --save-dev grunt-contrib-less// npm install --save-dev grunt-contrib-watch// 在项目根目录新建此文件:Gruntfile.js// 终端执行> ...原创 2019-11-01 17:21:53 · 256 阅读 · 0 评论 -
前端项目 nginx 配置
server { listen 80; #port server_name ${hostname || ip}; gzip on; gzip_min_length 1k; gzip_comp_level 9; gzip_types text/plain application/javascript application/x-javascript ...原创 2019-10-31 12:51:46 · 223 阅读 · 0 评论 -
Promise + Generator 实现 async await——《你不知道的Javascript 中卷》
function run(gen) { var args = [].slice.call(arguments, 1), it; // 在当前上下文中初始化生成器 it = gen.apply(this, args); // 返回一个Promise用于生成器完成 return Promise.resolve() .then(function...原创 2019-08-16 17:04:56 · 257 阅读 · 0 评论 -
call、apply、bind 的使用笔记
当第三方提供的回调参数是数组,我们想转成参数列表时:function funWithCB(cb) { var arr = [1, 2]; cb(arr);}funWithCB(Function.apply.bind(function(arg1, arg2) { console.log(arg1 + arg2); // 3}, null));// 与下面同理function ...原创 2019-08-12 15:12:00 · 140 阅读 · 0 评论 -
Promise 并发迭代笔录——《你不知道的Javascript-中卷》
// polyfill安全的guard检查if(!Promise.map) { Promise.map = function(vals, cb) { return Promise.all( vals.map(function(val) { return new Promise(function(resolve) {...原创 2019-08-12 11:57:16 · 231 阅读 · 0 评论 -
使用前端路由 history 模式的前后端配置说明(Vue、Vue-Router、Webpack、tomcat 项目)
前端:webpack.prod.config.js 配置:webpack.DefinePlugin配置说明plugins: [ // ... new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify('production') }), // ...]webpack...原创 2019-04-03 14:07:24 · 2980 阅读 · 0 评论 -
Webpack 第三方库与业务代码打包分离
项目目录结构:1.package.json配置:{ // ... "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "webpack-dll": "webpack --config ./webpack.dll.conf.js", "build": "...原创 2019-04-15 09:53:35 · 956 阅读 · 0 评论 -
Less 小记
Less 最基本和重要的概念: 变量、扩展、混合(带参数的混合、作为函数使用的混合、传递规则集给混合)第一条:extend VS mixin:nav ul { &:extend(.inline); background: blue;}.inline { color: red;}// outputnav ul { background: ...原创 2019-04-15 10:40:51 · 129 阅读 · 0 评论 -
webpack 小记
+ module rules:[ Rule resource test exclude include resoueceQuery use loader ...原创 2019-05-06 10:26:25 · 134 阅读 · 0 评论 -
JavaScript 继承(寄生组合式继承)
function prototypeInstance(superType) { function F(){} F.prototype = superType.prototype; return new F();}function inheritPrototype(subType, superType) { var prototypeIns = prototy...原创 2019-05-17 16:49:01 · 542 阅读 · 0 评论 -
React 差异算法相关的两个假定
1. 相同类的两个组件将会生成相似的树形结构,而不同类的两个组件将会生成不同的树形结构。2. 可以为元素提供一个唯一的标识,确保该元素的唯一标识在不同的渲染过程中保持不变。...原创 2019-06-14 15:51:42 · 210 阅读 · 0 评论 -
关于JS 中 this 的绑定规则
总的规律:this 的绑定取决于调用位置!1. 默认绑定(独立函数调用)。function foo() { console.log(this.a);}var a = 2;foo(); // 22. 隐式绑定(调用位置有上下文对象,如例子中的 obj)-》当函数引用有上下文对象时,隐式绑定规则会把函数调用中的 this 绑定到这个上下文对象。function foo...原创 2019-06-28 11:21:00 · 368 阅读 · 2 评论 -
Canvas 画环形进度条
JS代码如下:function draw(ctx, rate) { ctx.clearRect(0,0,300,300); ctx.beginPath(); ctx.strokeStyle = "gray"; ctx.arc(150, 150, 100, (1/3)*Math.PI, (2/3)*Math.PI, true); ctx.stroke(); c...原创 2019-07-11 11:52:02 · 232 阅读 · 0 评论 -
Symbol 的作用
1. 避免暴露内部数据逻辑(function(_this) { const COLOR = Symbol(); const RED = Symbol(); const GREEN = Symbol(); const BLUE = Symbol(); _this.COLOR_ENUM = { [COLOR]: { [RED]...原创 2019-07-11 15:09:19 · 639 阅读 · 0 评论 -
你不知道的JavaScript语法
1. 数字中的小数点42.toFixed(3); // SyntaxError42..toFixed(3); // “42.000”42.toFixed(3)是无效语法,因为点号【.】被视为数字常量【42.】的一部分,所以没有【.】属性访问运算符来调用toFixed方法;2. + 可以字符强转数字var c = '3.14';var d = 5+ +c; // 8.14...原创 2019-07-11 15:11:55 · 150 阅读 · 0 评论 -
JS 的数组操作
修改自身的操作有:pop、push、shift、unshift、reverse、sort、splice不修改自身的操作有:concat、join、slice原创 2019-08-05 10:48:18 · 123 阅读 · 0 评论 -
JS 事件循环队列和任务队列——你不知道的JavaScript(中卷)
事件循环队列类似于一个游乐园游戏:玩过了一个游戏之后,你需要重新到队尾排队才能再玩一次。而任务队列(ES6)类似于玩过游戏之后,插队接着继续玩。...原创 2019-08-05 11:43:28 · 446 阅读 · 0 评论 -
Promise 超时相关笔录——《你不知道的JavaScript-中卷》
// 用于超时一个Promise的工具function timeoutPromise(delay) { return new Promise( function(resolve, reject) { setTimeout(function(){ reject('Timeout'); }, delay); });}//...原创 2019-08-12 11:24:32 · 173 阅读 · 0 评论 -
Vuex 与 Redux 更新store过程的比较
Vuex使用store:this.$store.state更新store异步三步走:1. store.dispatch(actionFunStr) 2. actionFun({commit}) --> commit(mutationFunStr) 3.mutationFun(state) --> state同步:1. store.commit(m...原创 2019-04-11 17:10:30 · 271 阅读 · 0 评论