很多人应该像我一样,对于webpack的require.context都是一知半解吧.网上很多关于require.context的使用案例,但是我没找到可以帮助我理解这个知识点的,于是也决定自己来探索一下,下面以网上流行的svg图标方案为例说明.对了,本文的重点是require.context,并不会去解释svg symbol方案svg-sprite-loader. 关键代码 src/icons/index.js const context = require.context("./svg&qu…
dva redux数据管理都在models,根据业务不同models可能会有几十甚至上百的 [模块.js], 每次在index.js使用 app.model(require('./models/example').default);  引入 Model 可能要写多个, 那么如何优雅的扩展model,不去重复的require model呢,利用 require.context就可以做到. require.context是什么 你可以使用该require.context()函数创建自己的上下文. 它…
1.require.context(directory, useSubdirectories = false, regExp = /^\.\//) Examples: require.context("./test", false, /\.test\.js$/); require.context("../", true, /\.stories\.js$/); 2.入参 1. 你要引入文件的目录 2.是否要查找该目录下的子级目录 3.匹配要引入的文件 3.返回的: 1…
最近在开发一个大型vue单页面应用的时候,项目最初是将所有的路由写在一个router.js的文件里. const router = new Router({ mode: "history", routes: [{    path: '/', name: 'Index', component: include('index', 'home') }, { path: '/aboutus', name: 'aboutUs', component: include('aboutUs', 'ho…
8张图带你理解Java整个只是网络 一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符串不变性 下面这张图展示了这段代码做了什么 String s = "abcd"; s = s.concat("ef"); 2.equals()方法.hashCode()方法的区别 HashCode被设计用来提高性能.equals()方法与hashCode()方法的区别在…
1.require 1.1完整路径的require语句: require('tools'); //preset alias tools require('./js/main'); 1.2带表达式的 require 语句:自动创建一个上下文(context) 如果你的 require参数含有表达式(expressions),会自动创建一个上下文(context),因为在编译时(compile time)并不清楚具体是哪一个模块被导入. 如: require('./template/' + name…
带表达式的 require 语句如果 require参数含有表达式(expressions),会创建一个上下文(context),因为在编译时(compile time)并不清楚具体是哪一个模块被导入 require("./template/" + name + ".ejs");1webpack 解析 require() 的调用,提取出来如下这些信息: Directory: ./templateRegular expression: /^.*\.ejs$/1212会…
先说 webpack里面有这么一招:使用require.context()方法来自动导入模块 官方文档有点深奥,老衲百度下拿了一段来直接使用,但是想看下它是如何运行的 本篇这里不会有太深入的研究,只是用一种解读方式更有助于理解它的原理 老衲使用的是随便vue项目的vuex改造来做例子 我们这里只研究require.context()怎么回事,不是讲解vuex怎么改造. 开始 先建这么个目录结构,里面2个模块: 模块里随便导出点东西,我们就用简单的对象: 在store.js中,然后我们抄了段代码是…
1. vue异步组件技术 vue-router配置路由,使用vue的异步组件技术,可以实现按需加载. 但是,这种情况下一个组件生成一个js文件.举例如下: { path: '/promisedemo', name: 'PromiseDemo', component: resolve => require(['../components/PromiseDemo'], resolve) } 2. es提案的import() 推荐使用这种方式(需要webpack > 2.4) webpack官方文档…
我们在 MySQL 入门篇主要介绍了基本的 SQL 命令.数据类型和函数,在局部以上知识后,你就可以进行 MySQL 的开发工作了,但是如果要成为一个合格的开发人员,你还要具备一些更高级的技能,下面我们就来探讨一下 MySQL 都需要哪些高级的技能 MySQL 存储引擎 存储引擎概述 数据库最核心的一点就是用来存储数据,数据存储就避免不了和磁盘打交道.那么数据以哪种方式进行存储,如何存储是存储的关键所在.所以存储引擎就相当于是数据存储的发动机,来驱动数据在磁盘层面进行存储. MySQL 的架构可…