Skip to content

Instantly share code, notes, and snippets.

View AaronFlower's full-sized avatar
💭
I may be slow to respond.

AaronFlower

💭
I may be slow to respond.
View GitHub Profile
@AaronFlower
AaronFlower / router.html
Created November 26, 2017 08:49 — forked from joakimbeng/router.html
A really simple Javascript router
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Building a router</title>
<script>
// Put John's template engine code here...
(function () {
// A hash to store our routes:
@AaronFlower
AaronFlower / proxy-observable.js
Created November 30, 2017 15:47
javascript Proxy Reflect
/**
* Use Proxy to implement observable
*/
function observable (obj, onchange) {
return new Proxy(obj, {
set (target, key, value) {
Reflect.set(target, key, value)
onchange(key, value)
},
delete (target, key) {
@AaronFlower
AaronFlower / currying-add.js
Created November 30, 2017 16:07
javascript currying
function add (a, b) {
return a + b
}
foo = [10, 20, 30, 40]
bar = foo.map(add.bind(null, 5))
console.log(bar)
@AaronFlower
AaronFlower / box-sizing.css
Created December 2, 2017 08:30
css box-sizing best practice 01
*, *:before, *:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
@AaronFlower
AaronFlower / box-sizing-02.css
Created December 2, 2017 08:31
box-sizing best practice 02
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
@AaronFlower
AaronFlower / webpack-expose-loader.js
Last active December 6, 2017 14:08
expose-loader 暴露全局变量到宿主环境上
{
module: {
rules: [{
test: path.resolve(__dirname, '../pdmp/scripts/lib/jquery-1.12.4.js'),
use: [{
loader: 'expose-loader',
options: '$'
},
{
loader: 'expose-loader',
@AaronFlower
AaronFlower / .postcssrc.js
Last active December 8, 2017 14:41
postcss-import 无法识别别名解决方法
// https://github.com/michael-ciniawsky/postcss-load-config
//
const webpackConfig = require('./build/webpack.base.conf.js')
// 使用 postcss-import-webpack-resolver 就可以识别别名了。
const createResolver = require('postcss-import-webpack-resolver')
module.exports = {
"plugins": {
// to edit target browsers: use "browserslist" field in package.json
// https://www.npmjs.com/package/postcss-import-webpack-resolver
@AaronFlower
AaronFlower / .babelrc.js
Created December 9, 2017 06:45
babel rc
{
"presets": [
["env", { "modules": false }],
"stage-2"
],
"plugins": ["transform-runtime", "transform-vue-jsx"],
"comments": false,
"env": {
"test": {
"presets": ["env", "stage-2"],
@AaronFlower
AaronFlower / babel-spread.js
Created December 9, 2017 06:52
babel support spread
/*
That syntax is an experimental proposed syntax for the future, it is not part of es2015 or react so you'll need to enable it.
npm install --save-dev babel-plugin-transform-object-rest-spread
and add
"plugins": ["transform-object-rest-spread"]
alongside your existing presets.
@AaronFlower
AaronFlower / simple-webpack-config.js
Created December 11, 2017 15:01
simple-webpack-config
const path = require('path')
const webpack = require('webpack')
const htmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
 entry: {
  app: './src/main.js',
  moduleA: './src/moduleA.js',
  moduleB: './src/moduleB.js',
  moduleC: './src/moduleC.js'
 },