Yinode Blog

断裂,就一直断裂

Webpack JS模块化原理

最近一直在看一些和JS模块化发展历程的东西,正好呢,也想了解一下Webpack在我们背后帮我们做了那些事情,所以就有了今天的这篇文章。 首先我

从JS的阻塞角度谈谈浏览器渲染原理

前言 这样,在解析包含的javascript代码之前,页面的内容将完全呈现在浏览器中。而用户也会因为浏览器窗口显示空白页面的时间缩短而感到打

移动端强制横屏方案

最近工作中要开发一个横屏应用,无论用户是否开启手机旋转功能,进行强制横屏。  这里面也收获了一些经验,在这里和大家分享一下。 首先说明我的方案只

DOM中的各种XY定位属性以及元素宽高属性

我们都用过不少JS中的定位属性,比如scrollTop,clientX等等,但是其实单纯从命名上,我们是很难区分各种属性的含义的,我平时也经

JavaScript中的 == 相等操作符

想到这个的主要原因是最近看到了一个非常有趣的题目 [] == ![] 大家有想到结果是什么吗?其实结果是 true,下面是具体的判断链 [] == ![] -> [] == false -> [] == 0 ->

让 Vue.js 中的 provide / inject 支持响应式

provide / inject provide / inject Vue.js 2.2.0 版本后新增的 API. 还发出了这样的警告provide 和 inject 主要为高阶插件/组件库提供用例。并不推荐直接用于应用程序代码中。 provide 和 inject 绑定

初次尝试WebAssembly X Rust

这个东西其实我大约一年之前听到了解到,但是一直没有尝试。 正巧最近自己写了个文本校对工具,公司内部的一些人员在用,功能上没有问题,主要就是因为

Vue.js源码 阅读引导

前言 最近一直在看 Vue.js 源码,大约花了半个多月的时间阅读,有非常多的感悟,所以在这里希望能和大家分享一下我的成果。 首先我认为 Vue.js 这种牛逼框架的源码绝

Vue源码中编程技巧记录

记录下我在阅读过程,觉得非常有学习的必要,非常好的东西。 操作对象属性的引用 <性能-可读性> exp function name(vm) { let data = vm.$options.data // 接下来需要读取dat

一些Web最佳实践的探索

最近用 Django 整了一个匿名的论坛,包含主题回复点赞,板块,用户等系统,麻雀虽小,但是基本功能还是全的的。但是不对接多可惜啊。 正好这半年多的前端开发

JavaScript 中 几种快排的实现

其实也就是前段时间点阮一峰快排事件,正好去看看大家的实现,在这里记录一下,并写一下注释 实现 1 特点 简单 智力经济 性能较差 加随机化比较方便 只要把取

利用AOP的思路完成微信公众号网页中的分享来源统计功能

需求 最近遇到了这么一个需求,我们拥有一个主要容器是微信浏览器的移动端 WebAPP 。他的主要功能是运营一些活动比如说抢红包啦,答题啦,所以我们需要对用户

微信+vue 任意页面直接通过路由进入并拦截按钮 返回任意页面

先来阐述一下需求 首先我拥有一个详情页面 B 用户可以进入到页面 B 之中分享出去页面 B 但别的用户通过地址直接进入页面 B 这时候 如果用户按了一下返回按钮

微信webapp分享出去带分享参数 form 导致进入分享无法正常匹配路由 vue

以下是某个单页应用的地址 http://m.cswh.me/dh/#/activity/flagRaisingPolice?act_token=b5f01112731d4c47bc5a7214d17365b2 而在这个页面使用微信的JSAPI进行分享之后,即使你设置了 wx.ready(function() { wx.onMenuShareAppMessage({ link: window.location.href , title: that.config.share_title, imgUrl: uploadURL + that.config.share_icon, desc: that.config.share_text }) wx.onMenuShareTimeline({ link: window.location.href, title: that.config.share_title, imgUrl: uploadURL + that.config.share_icon, desc: that.config.share_text }) })

贡献你的力量 开发一个Vue组件并发布到npm

最近在工作中写了一个面向 PC 端的 Vue 滚动组件,关于 PC 端的滚动组件以前也用过一些,但是没有找到特别满意的,所以自己想着把这个组件开源发布出去,希望

解决微信浏览器中登录后缓存页面导致无法进入Vue.js组件生命周期的问题

先来阐述一下我的登录逻辑 进入组件 A 请求接口 api 请求会被拦截器拦截 检查该接口是否需要登录 如果用户未登录 跳转到 login 组件 xx.com/#/login?

算法实战 文本校对工具 最长公共子序列

前段时间公司里有需求需要一个文本对比工具,我在网上也收集到了一些资料,找到了一些对比 DEMO,仔细考虑之后恍然大悟,这东西不就是最长公共子序

分享一个Fib数列实现 [reduce]

const fib = n => Array(n) .fill(0) .reduce(pre => [pre[1], pre[1] + pre[0]], [0, 1])[0] def fib(n): return reduce(lambda x, n: [x[1], x[0]+x[1]], range(n), [0, 1])[0] 性能也非常不错,迭代实现。从 Py 那边偷学的。 帅爆了有没有

在微信spa中模拟一个路由堆栈系统

最近再写一个活动模块,用 vue 写的。这个活动模块需要融合到我们的主项目之中,这就意味着在用路由做其实不太好,活动本身的数据交换比较频繁,用 vuex 太大

微信浏览器 IOS下 动态音乐播放器无法正常播放的问题

这个其实算是老生常谈的问题了,IOS 的安全机制导致你无法自动播放音频,很多人用一些触摸事件来模拟用户操作,然后去触发 play 事件。不过今天我的问题

最小硬币问题 [动态规划]

问题 假设你当前拥有 3 元 6 元 7 元的硬币 数量为无限。问 假设你需要组合出 18 元,如何使硬币的数量最少 分析:我认为这个问题有点类似于 01 背包问题,很明显

解决微信小程序 chooselocation在ios下不能稳定触发的问题

setTimeout(() => { this.moveToLocation() // chooseLocation的包装函数 }, 150) 在页面onLoad生命周期里 用150ms的延迟来保证触发。具体原因未知,官方文档没有写,

算法导论笔记 多线程算法

多线程算法 相对我来说比较局限,因为 js 是单线程的,所以只做了解,后续如果要用到可以在进行进一步的掌握。 首先来讲,目前的大部分算法都是基于单线程

算法导论笔记 全点最短路径算法

复习 在我们之前的学习之中,已经了解三种不同的最短路径算法,他们在某些条件限制下拥有不同的性能 无权图 或者说权重全部相同 可以使用 广度优先搜索(借

算法导论笔记 动态规划番外篇 堆与优先队列

最近在学习动态规划的时候发现非常需要优先队列的的基础,所以转而先学习一下优先队列算法。这里就找了比较通用的堆来入手了解优先队列。 堆 首先这里的

算法导论笔记 十一 最短路径算法

最短路径 最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 假设我们拥有一条路径 P P 经过一些

算法导论笔记 十一 贪心算法 最小生成树

图论 最小生成树需要你掌握基本的图论 在书的附录中有介绍,可以先去看看 设 V 为 有向图(v,e)的顶点集 那么遍历这个图的成本为 O(V ^ 2) 如果一个有向图 G

Nginx 简单配置转发 显示一个基本的多服务结构

最近捣鼓了不少时间,起初想到要弄这个就是因为 node 直接起 server 的方式有点暴力,因为占用了 80 端口就是真的占用了,很难在用一个 80 端口挂多个 WebServ

几种排序算法

最近一直在复习排序算法,也有了不少更深入的解读,拿出来分享一下 冒泡排序 冒泡排序顾名思义,就是将一个个数字冒泡一样的推送到他该去的地方。 冒泡算

算法导论笔记 一 起步

算法 什么是算法 算法(algorithm),在数学(算学)和计算机科学之中,为任何良定义的具体计算步骤的一个序列,常用于计算、数据处理和自动推

算法导论笔记 二 分治法

名词解释 多项式级 即 n^2 n^3 可以被认为是可控的算法复杂度级别 指数级 x^n 级别 非常恐怖 分治法 分治法是一种极为重要的算法设计思想,他的核心思想就是把大问题

算法导论笔记 八 竞争性分析,自组织表

自组织表 先来理解两个概念 在线算法与离线算法 在线算法(也成为线上算法):是一个处理数据的一种方式,他不要求建立数据结构的时候所有数据源全部就绪

算法导论笔记 四 中位数与顺序统计

选择算法 所谓的选择算法,其基本规则就是从一个无序的数组中,找到第 i 小的值。 最简单的做法其实就是将数组排序,下标+1 就是它的 i。但是,就算依托

算法导论笔记 四 二叉搜索树

二叉树 二叉树本身就是非常常见的一种数据结构了,对于这种数据结构当然有一些基本操作 增删改查最大最小等等,一个二叉树的的基本操作都和二叉树的高度

算法导论笔记 四 全域哈希和完全哈希

HASH 算法的缺陷 首先,我们所了解到的所有简单的复杂的 HASH 函数总会拥有一些薄弱点,即输入一些特殊的 key 会很容易返回相同 KEY 导致多条数据插入到同一个槽中,

算法导论笔记 四 哈希表

直接寻址 相对于哈希表来说,直接寻址是一种更为简单的方法,即使用一组键集合 K 来代表一组相应的值 U,但是直接寻址受限于一个重要的缺陷,即K可能相

算法导论 七 平摊分析,表的扩增,势能方法

动态表 简单阐述一下动态表的基本思想,先建立一个表,当插入的元素大于表的大小时,建立一个新表(大小为旧表的两倍),并将旧表中的所有数据复制到新

算法导论笔记 九 动态规划

动态规划 动态规划(英语:Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过

算法导论笔记 五 扩充的数据结构、动态有序统计和区间树

这一章的主要内容其实是如何利用现有的数据结构来扩充成一个新的数据结构,并让这种新的数据结构具有一些神奇的特性。 动态顺序统计 我们在前面就学习了

算法导论笔记 六 跳跃表

跳跃表(skiplists) 跳跃表是一种增强版的链表,他能在O(lgn)的时间内完成搜索。 首先,我们熟知的链表本身具有的特性就是容易删除与增

React-Native 达达看书阅读器

What is React Native? React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的UI框架 React 在原生移动应用

使用React快速开发Chrome扩展程序

首先要说明的是这个文章其实属于翻译或者说转述,我是从google上搜索到了这篇原文,并且用它的构建流程成功开发了一个扩展,很爽,速度很快,五

为React-native添加redux

其实在网上随便一搜索 react 加 redux 的可以说特别的多,但是为 React-native 加的还真的很少,所以我在实践完成之后就打算记录一下在 RN 中如何启用 redux,其实和 React 的用

利用git的submodule(子模块) 来管理项目

我相信很多人都有过在一个项目中引入一个乃至多个库的经历,但是如果我们的主项目使用git来进行版本控制并且使用单纯的add&commi

Chrome扩展:电影资源提醒

预览 其实这个插件很早以前就完成了,但是实现的逻辑完全不一样,直接AJAX获取然后插入到插件页面中,问题就在最近Chrome版本一升级炸了,和

在Vue2.5中使用typeScript

本文的环境依旧是由Vue-cli工具初始化的。 安装 npm install typescript ts-loader --save-dev 配置 首先在webpack.base.config.js中设置一下基本的Loade

转制一个Todo App 为 PWA 应用

What is PWA? PWA全称Progress Web Application,也就是渐进式web应用,是由Google在2015年就提出的概念。它本质上是一个普

CSS3 transform 实现星球大战开场动画效果

灵感来自于segmentfault的一个页面,在看到之后仔细研究了一下transform的3d变形效果。 其实css3的3d效果也是伪3d,依

利用websocket技术实现一个俄罗斯方块对战游戏

预览 技术栈 主要利用了websocket,由于ws天生是可以跨域的,所以我将静态页面部署在了gh-page上,而负责后端交互的部分我放在了我的

解决移动端浏览器无法调用audio的play方法

最近在写一个移动端音乐播放器的时候遇到一个非常难受的问题,在PC可以正常调用audio标签的play方法,在在手机移动端上的绝大部分浏览器都