请不要忘了,有一个值叫 inherit 下午在写组件的时候瞄了一眼qq群,看到有个哥们在问一道css的问题,他的问题如下图 红圈部分超出主体的部分,他是用伪元素写的,通过border和背景色,与最后一行的一个单元格融为一体...群里很热心,有人提供了js计算当前奇偶数的方法来赋值,有人提供js获取当前单元格背景色的方式赋值。 我悄悄问了一句,你为什么不继承哪?...DOCTYPE html> 请不要忘了,有一个值叫 inherit <style
从前,有个女生宿舍,住着小A、小B、尤娜和我4个人。有天,小A不小心把小B的床板坐塌了。小B非常生气,当场和小A翻脸。不论人缘最好的尤娜怎么中间调解都不管用。一直到毕业,小A和小B再没有说过一句话。...尤娜叹了口气:“这样吧,我们公司做一个系统,你俩都来接我吧。” 于是,尤娜成立了一个以自己名字命名的项目,看着我实在找不到工作,就让我自学编程,给她做开发。于是尤娜初版就这样上线了。...上线之后,我发现A的调用请求一天有几个时间调用量特别大,小B公司的老师说:“扛不住了,不要把流量直接透传过来呀!” 我通过自己的学习调查,发现可以使用消息中间件做个缓冲。...聪明如我怎么会想不到办法,我把B返回的结果记录到数据库中。当A的请求发送到消息中间件后就循环去数据库里取结果,取到就返回这个结果给A。完美!...我按照网上找到的《项目中怎样做技术选型》的文章,结合目前的特点,优缺点比较之后,消息中间件使用kafka,数据库使用mysql。经过自己的努力,尤娜第二版上线啦。
简介 我们开发一个库,供别人使用 npm 下载使用时,为了保证兼容性和体积,应该将其打包。本节介绍如何打包一个库进行发布。 2....初始化项目 首先,我们新建一个目录,叫 library-demo,进入该目录,运行命令: npm init -y 这样我们就初始化了一个项目,并为其自动创建了一个 package.json 如下: {...实现库逻辑 我们实现以下库逻辑,新建目录 src, 然后在其下新建三个文件: // math.js export const add = (a, b) => a + b; export const minus...libraryTarget: "umd", // universal module definition 6. externals 假设我们开发的库文件中本身引用了一个三方库,如下: // string.js...image.png 可以看到 lodash 被打入进来,大大增加了包体,且拖慢了打包速度。lodash 这类三方库其实一般都很稳定,可以单独拿出来加载并缓存。
Lodash是一个一致性、模块化、高性能的 JavaScript 实用工具库,其官网地址为:https://www.lodashjs.com/,Github托管地址为:https://github.com...查看各个构件版本的区别并选择一个适合你的版本。...安装 浏览器环境: 通过 npm: $ npm i -g npm $ npm i --save lodash Node.js: //...补充工具 futil-js 是一套用来补足 lodash 的实用工具集。...(注:也叫深拷贝)。 添加版本 1.0.0 参数 value (): 要深拷贝的值。 返回 (): 返回拷贝后的值。
这些能够被复用的小段代码叫做 package (包),或者也可以叫成 module(模块)。一个 package 仅仅只是一个文件夹,里面带有一个或者多个文件而已。...一个基本的思想就是建立一个精小的代码块专门用来解决某个问题,然后再通过这些小的代码块组合起来来解决一个更大的问题。 这种工作方式是有很多好处的。...npm的背后,是基于couchdb的一个数据库,详细记录了每个包的信息,包括作者、版本、依赖、授权信息等。...实例,创建一个名为 index.js 的文件,并保存如下代码: // index.js var lodash = require('lodash'); var output = lodash.without...package.json 文件有一个 scripts 字段,可以用于指定脚本命令,供 npm 直接调用。
RN 有一个根据多个 key 返回多条数据的 API。 它返回的是一个数组对象,数组序号0是数据存储的 key 值,序号1才是数据存储的具体字符串。...在添加的时候会根据当前时间戳创建一个唯一 id,使用这个 id 作为 key 存储在数据库中。...所以在使用的时候不需要再单独存入 id,不过如果你觉得这个 id 跟你需要的有差别也可以自己定义一个 id 来作为 key 值存储。...每个对象创建其实都是一个很大的消耗,如果能把这个消耗降低岂不是美滋滋! 这里我们借鉴数据库池的概念,实现一个对象池的方法。在对象创建之后并没有直接返回,要在经过池的操作。...自己整理了一份2018最全面前端学习资料,从最基础的HTML+CSS+JS到移动端HTML5到各种框架都有整理,送给每一位前端小伙伴,这里是小白聚集地,欢迎初学和进阶中的小伙伴!
定义类库 (function (window) { 'use strict' function defineBayside() { var Bayside =...(Bayside) === 'undefined') { window.Bayside = defineBayside(); } })(window); 调用类库...Bayside.alert(); 另一种列子 定义类库 function $(selector) { const self = { element: document.querySelector...} else { self.element.setAttribute(name, value) } } } return self; } 调用类库
简述 封装一个js库其实没有想象中的那么困难,常见时间格式化,发个npm仓库,搞个cdn,引入就能正常使用。...使用封装库能力又得不到满足,两难境地! 核心问题 既想使用公共的能力,又想库有扩展的能力,想一想有哪些思路可以匹配这样的场景?...@validate装饰器把greet方法包裹在一个函数里在调用原先的函数前验证函数参数。...tapable,大神的源码解读掘金地址 问题回归 既想要封装功能的能力,也允许各个业务使用方去很好的扩展功能 实现一个公共请求库带插件的 /* * @Description: * @version:...js库怎么让人使用的舒服,两个关键点无侵入面向切片,可扩展提供额外的能力 装饰器模式和插件的方式都是基础库开发过程中最常见的实践
本文作者:IMWeb 林鑫 原文出处:IMWeb社区 未经同意,禁止转载 介绍 sChart.js 作为一个小型简单的图表库,没有过多的图表类型,只包含了柱状图、折线图、饼状图和环形图四种基本的图表...该库使用 canvas 实现,兼容 IE9 以上浏览器。.../js/sChart.min.js"> 使用简单: new sChart(canvasId, type, data, options); 即可生成一个图表。...vue相关 vue-schart:是用vue.js封装了 sChart.js 的一个库。方便在vue的项目中使用。...仓库地址:https://github.com/lin-xin/vue-schart 在项目中使用了 vue-schart 的有:vue-manage-system 总结 当然,现在有很多成熟的图表库,
作者:Dmitri Pavlutin 译者:前端小智 来源:Dmitri Pavlutin 1.命名导入和自动完成 假设我信编写了一个简单的JavaScript模块: // stringUtils.js...equalsIgnoreCase(string1, string2) { return string1.toLowerCase() === string2.toLowerCase(); } 模块stringUtils具有导出了一个函数...现在在 app.js 文件中导入函数 exequalsIgnoreCase / app.js import { equalsIgnoreCase } from '....现在,在另一个Python模块app内部,将stringUtils导入equalsIgnoreCase函数: image.png 在Python中,首先指出要从:from stringUtils哪里导入的模块...代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。
介绍 sChart.js 作为一个小型简单的图表库,没有过多的图表类型,只包含了柱状图、折线图、饼状图和环形图四种基本的图表。麻雀虽小,五脏俱全。sChart.js 基本可以满足这四种图表的需求。...该库使用 canvas 实现,兼容 IE9 以上浏览器。.../js/sChart.min.js"> 使用简单: new sChart(canvasId, type, data, options); 即可生成一个图表。...vue相关 vue-schart:是用vue.js封装了 sChart.js 的一个库。方便在vue的项目中使用。...仓库地址:https://github.com/lin-xin/vue-schart 在项目中使用了 vue-schart 的有:vue-manage-system 总结 当然,现在有很多成熟的图表库,
Github:github 访问Wike:js.wiki 省流总结 开源知识库平台,和语雀有一样的功能,独立部署; wiki支持权限管理、用户管理,可使用markdown格式编辑; wiki的部署推荐使用...Web服务器:wiki.js需要一个Web服务器来托管wiki页面。常用的Web服务器包括Apache、Nginx和IIS。...可以使用以下命令来安装PostgreSQL: sudo apt install postgresql 3 wiki的部署方式 省流:官方有5种,要用linux。...3.1 5种部署方式 Docker部署:使用Docker可以快速在任何平台上部署wiki.js。只需运行一个命令即可创建一个wiki.js容器,然后就可以通过浏览器访问。...Kubernetes部署:使用Kubernetes可以将wiki.js部署到多个节点上。只需创建一个Deployment对象即可。
一个chunkhash可能长这样:0c553ebfd158e16da428。 我们的主chunk会被打包进一个叫main.[chunkhash].bundle.js的文件。...[chunkhash].bundle.js和b.[chunkhash].bundle.js,而且每一个文件都包含对lodash库的拷贝:这并不好!...我之前说过,为共享的库创建分离的文件是Webpack的一个默认行为,但这只涉及异步的chunk,即意味着只作用于我们异步引入的那些文件。我们会在介绍懒加载的时候讨论这个话题。...[chunkhash].bundle.js文件,它包含了lodash库的代码。...这里有一个小点:有一些冗余。a.[chunkhash].bundle.js和b.[chunkhash].bundle.js都包含了users.js的内容。
一般来说一个 chunk 对应一个 bundle,比如上图中的 utils.js -> chunks 1 -> utils.bundle.js;但也有例外,比如说上图中,我就用 MiniCssExtractPlugin...比如说我们业务代码中写了一份懒加载 lodash 的代码: // 文件:index.js // 创建一个 button let btn = document.createElement("button"...webpackPrefetch 和 webpackPreload 这两个配置一个叫预拉取(Prefetch),一个叫预加载(Preload),两者有些细微的不同,我们先说说 webpackPrefetch...在上面的懒加载代码里,我们是点击按钮时,才会触发异步加载 lodash 的动作,这时候会动态的生成一个 script 标签,加载到 head 头里: ?...4.hash、chunkhash、contenthash 有什么不同? 首先来个背景介绍,哈希一般是结合 CDN 缓存来使用的。
能够将任何资源如 JavaScript 文件、CSS 文件、图片等打包成一个或少数文件。 Webpack 是一个前端资源加载/打包工具。...----> </script...') } }; 注:__dirname 是node.js中的一个全局变量,它指向当前执行脚本所在的目录。...是模块打包器(module bundler),把所有的模块打包成一个或少量文件,使你只需加载少量文件即可运行整个应用,而无需像之前那样加载大量的图片,css文件,js文件,字体文件等等。...而gulp/grunt 是自动化构建工具,或者叫任务运行器(task runner),是把你所有重复的手动操作让代码来做,例如压缩JS代码、CSS代码,代码检查、代码编译等等,自动化构建工具并不能把所有模块打包到一起
minimize:true,或者放到plugins中 看webpack源码默认配置,参考 前端进阶面试题详细解答 图片 副作用(sideEffects) 先来解释下什么是副作用:修改当前作用域之外的行为都叫副作用...在webpack.config.js设置sideEffects:true表示检查三方包的sideEffects字段,webpack在用userExports标记无用代码时,如果判断不出库中代码是否有副作用...什么是chunk webpack的本质是把多个js模块合并到一个js中,即一个入口得到一个输出js文件(bundle.js)。...css有style-loader,react有react-hot-loader,vue有vue-loader。...、vant tree shaking的前提是使用import导入,但是按需加载并不需要 还有一个点需要注意:如果是我们封装的库,如组件库,导出格式根据文件类型不同,如是js文件可以为 commonjs
概念 按照我们平常的理解,webpack就是一个前端打包工具,术语叫javascript应用程序的静态资源模块打包器。 有了这个概念以后,我们就可以接着去思考下一个问题,既然它是一个静态资源打包器。...配置技巧 项目中常用的配置技巧有以下几点:一,代码分割。二,懒加载。三,匀场技术。四,source Map。...日常配置代码分割的方法有三种:1. 配置多个入口。2.使用CommonsChunkPlugin插件。3.动态导入。...lodash作为全局变量,在代码任意地方使用。...它的配置有一个参照表: devtool 构建速度 重新构建速度 生成环境 品质 none +++ +++ yes 打包后的代码 eval +++ +++ no 生成后的代码 cheap-eval-source-map
虽然我已经尝试了一些 Node.js 的表单库 —— Express 和 Koa ——他们从未满足我的项目需求。 这些扩展库要么不兼容复杂的数据结构,要么在异步验证出现问题。...使用 Datalize 在 Node.js 中进行表单验证 这就是为什么我最终决定编写自己的小巧而强大的表单验证库的原因,它被称为 datalize。...datalize 库还有一个实现 Express 表单验证的例子。...一个基本的Node.js表单验证案例 假设你的 API 中有一个 Koa 或 Express Web 写的服务和一个端点,用于在数据库中创建包含多个字段的用户数据。...如果很多人有兴趣的话,我也可以为此编写一个教程。 我希望本教程能够帮助你在 Node.js 中构建更好的API,并使用经过完美验证的数据,而不会出现安全问题或内部服务器错误。
etools 常用js函数整理 安装和使用 使用npm安装:npm install -s etools 通过es6模块引入,如import _ from "etools";console.log(_.extend...(true,{},{"age":23})); 下载并在页面引入etools.js Git 仓库地址 ---- 版本说明 1.2.8 新增datetime下根据身份证号码获取年龄的方法getAgeByIDCard...ETools.string.getStrLength(str) ETools.string.trim(str) ETools.string.number2String(number) ETools.string.generateUUID() 生成一个唯一标识的字符串
官网:http://www.openjs.com/scripts/events/keyboard_shortcuts/
领取专属 10元无门槛券
手把手带您无忧上云