dahong
dahong copied to clipboard
个人技术随笔
## Babel 原理 ## 插件开发 ### 插件结构 ### Debug ### 测试用例
test pr
作者 [Sarah Drasner](https://github.com/sdras) 是一位开源社区非常活跃的程序媛,同时也是 Vuejs 团队的核心成员之一,本文并不会逐字逐句翻译,[原文地址](https://css-tricks.com/how-to-contribute-to-an-open-source-project/) 本文旨在指导 Github 开源项目贡献之旅,前提条件 1. 基本的 GIT 操作 2. 一些基础的命令行知识 ## 前言 实际项目中,我们会使用一些 Github 上面的开源项目,加快我们的开发进度,但是在开发中,有时候会遇到一些错误,它可能是个 Bug,或者满足不了我们的需求,在查看源码的过程中我们发现可能只需要一些改进就能大大的增强开发体验,但是我们无从下手,那么本文值得你一读 本文重点讨论给开源项目提交 pull request 流程,简称 PR ## 先读一读贡献指南 大部分的开源项目都欢迎其他开发者帮助贡献代码,而为了避免一次又一次的指导开发者熟悉项目开发流程,都会提供 `CONTRIBUTING.md...
自从被微软收购后,Github 动作频频 1. [支持设置模板仓库](https://help.github.com/en/articles/creating-a-template-repository) 2. [包管理服务](https://github.com/features/package-registry) 3. [开发者赞助](https://github.com/sponsors) 对开发者更友好,倾听社区反馈 Github 可以通过仓库的 `Settings → GitHub Pages` 来开启一个静态页面托管服务,而且支持自定义域名,最重要的是支持开启 HTTPS,对于个人开发者来说只要你有自己的域名,你就可以免费享受 Github 给你提供的服务器部署 ### 设置 gh-pages 开启 gh-pages 需要满足下面的一种 - master 分支 - master...
# 发布(Publish)/订阅(Subscribe)模式 简称pub/sub,pub/sub模式是我们平时业务中经常会使用到的,sub会监听一类消息来达到pub发布的时候进行相应的逻辑处理 举个例子,比如页面上有个列表,当我们点击刷新的时候要更新列表,当我们添加一个数据的数据的要更新列表,当我们删除一个数据的时候要更新列表,这时候我们就可以用到pub/sub模式 好,我们来简单写个pub/sub模式 ```javascript var scope = (function() { //消息列表 var events = {}; return { //消息订阅 on: function(name, handler) { var index; //记录当前消息事件的索引 //如果该消息已经存在,则将处理函数放到该消息的事件队列中 if (events[name]) {...
快速排序
# 快速排序 > 引自wikipedia 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序n个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n)算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 ## 步骤 1. 找到该数组的基准点(中间数),并创建两个空数组left和right; 2. 遍历数组,拿出数组中的每个数和基准点进行比较,如果比基准点小就放到left数组中,如果比基准点大就放到right数组中; 3. 对数组left和right进行递归调用。 ## 方法一 ```javascript function quickSort(arr) { if (arr.length
# Webpack 构建策略 module 和 nomodule ## 前言 前端性能优化已经过了刀耕火种的年代,现在更多的优化是从代码层面,其中重中之重的当然是 JS 的优化,之前看到 [React 16 加载性能优化指南](https://zhuanlan.zhihu.com/p/37148975)这篇文章中有提到 ES2015+ 编译减少打包体积,核心就是依赖 ``的支持来分辨浏览器对 ES2015+ 代码的支持,并且可以用``进行优雅降级 ## 浏览器支持 看一下 [Can I use… Support tables for HTML5, CSS3,...
# jQuery源码分析 ## 前言 有时候我在想jQuery为什么可以直接$操作,可以拥有比原生js更便利的DOM操作,而且只要你想就可以直接链式操作下去 ## 核心框架 ### 揭开一万多行代码的jQuery核心代码: ```javascript (function(window, undefined) { function jQuery(selector){ return new jQuery.fn.init(selector) } jQuery.fn = jQuery.prototype = { init: function () { } }...