记事本

首页 » Archive by category '记事本'

w3cmm

浅析Weex原理

Weex可以用Vue、React(Rax)语法开发前端页面,但是渲染出来的页面却可以是原生界面。以前一直只有点模糊的概念,最近终于可以静下心相对深入的了解一下。 从IOS入手 按照官网教程weex platform add ios后,项目目录多了很多东西,如果你是IOS开发者,就会很熟悉,Weex生成IOS相关的项目文件。 WeexDemo目录概览 WeexDemo代码概览 在WeexDemo中,初始化了WeexSDK,并且基于bundlejs/index.js(前端项目打包后的代码)创建了原生的view。下面将对上图中标注的5点依次相对深入的讲解。 JSContext _jsContext = [[JSContext alloc] init]; 上面的代码初始化了一个J … 继续阅读

目录 记事本 |
w3cmm

Higher-Order Components与 Render Props

Higher-Order Components 这里是一个响应鼠标事件的Higher-Order Components例子: import React from ‘react’ import ReactDOM from ‘react-dom’ const withMouse = (Component) => { return class extends React.Component { state = { x: 0, y: 0 } handleMouseMove = (event) => { this.setState({ x: event.clientX, y: event.clientY }) } render() { return ( <div … 继续阅读

目录 记事本 |
w3cmm

Redux 在车货匹配项目中的实践

Redux已经发布3年左右,一直没有在生产环境中实践过,前段时间正好有新需求可以体验一下。本文摘取项目的部分代码进行简单的分析。 入口文件: #goodsNew/index.tsx import * as React from ‘react’; import {createStore, applyMiddleware, Middleware} from ‘redux’ import {Provider} from ‘react-redux’ import {createLogger} from ‘redux-logger’ import ‘./index.css’ import GoodsNew from ‘./goodsNew’ import reducer from … 继续阅读

目录 记事本 | |
w3cmm

用Dva Model优化路由配置功能

最近业务中的中后台系统基本上都是采用Ant Design Pro开发,业务中路由配置模块功能过于复杂,如果组件通信只通过React props实在是痛苦不堪。Ant Design Pro中内置了dva,dva 通过 model 的概念把一个领域的模型管理起来,包含同步更新 state 的 reducers,处理异步逻辑的 effects,订阅数据源的 subscriptions 。 拆分组件 设计Model export default { namespace: ‘routeConfig’, state: { transfer: [], canvasData: [], isVisibleServiceList: false, serviceSearchParams: [] … 继续阅读

目录 记事本 | |
w3cmm

Weex安装遇到的一些问题

Ios-deploy install doesn’t work Install ios-deploy sudo npm install -g –unsafe-perm –allow-root ios-deploy Disable “SIP” Click the  symbol in the Menu bar.  Click Restart… Hold down Command-R to reboot into Recovery Mode. Click Utilities.  Select Terminal. Enter csrutil disable.  Enter reboot. Attempt install with &#8 … 继续阅读

目录 记事本 |
w3cmm

HTTP权威指南笔记

提高HTTP的连接性能 有几种现存和新兴的方法可以提高HTTP的连接性能。 并行连接 通过多条TCP连接发起并发的HTTP请求。 持久连接 重用TCP连接,以消除连接及关闭时延。 HTTP/1.0+keep-alive连接 实现HTTP/1.0 keep-alive连接的客户端可以通过包含Connection: Keep-Alive首部请求将一条连接保持在打开状态。 Connection: Keep-Alive Keep-Alive: max=5, timeout=120 HTTP/1.1假定所有连接都是持久的。要在事务处理结束之后将连接关闭,HTTP/1.1应用程序必须向报文中显式地添加一个Connection: close首部。这是与以前的HTTP协议版本很重要的区别 … 继续阅读

目录 记事本 |
w3cmm

webkit内幕

浏览器内核 Trident Gecko WebKit 浏览器渲染页面的过程 从耗时的角度,浏览器请求、加载、渲染一个页面,时间花在下面五件事情上: DNS 查询 TCP 连接 HTTP 请求即响应 服务器响应 客户端渲染 结论 css css加载不会阻塞DOM树的解析 css加载会阻塞DOM树的渲染 css加载会阻塞后面js语句的执行 Javascript 载入后马上执行; 执行时会阻塞页面后续的内容(包括页面的渲染、其它资源的下载)。原因:因为浏览器需要一个稳定的DOM树结构,而JS中很有可能有 代码直接改变了DOM树结构,比如使用 document.write 或 appendChild,甚至是直接使用的location.href进行跳转,浏览器为了防止出现JS修 改 … 继续阅读

目录 记事本 |
w3cmm

webpack中Hash、chunkhash与contenthash区别

hash hash字段是根据每次编译compilation的内容计算所得,也可以理解为项目总体文件的hash值,而不是针对每个具体文件的。 chunkhash chunkhash代表的是chunk的hash值。简单讲,chunk就是模块。chunkhash也就是根据模块内容计算出的hash值。 contenthash 使用extract-text-webpack-plugin单独编译输出css文件,造成上一节js/css共用hash指纹 extract-text-webpack-plugin提供了另外一种hash值:contenthash。顾名思义,contenthash代表的是文本文件内容的hash值,也就是只有style文件的hash值。 new ExtractTex … 继续阅读

目录 记事本 |
w3cmm

排序算法

排序算法比较

插入排序 插入排序原理很简单,将一组数据分成两组,我分别将其称为有序组与待插入组。每次从待插入组中取出一个元素,与有序组的元素进行比较,并找到合适的位置,将该元素插到有序组当中。就这样,每次插入一个元素,有序组增加,待插入组减少。直到待插入组元素个数为0。当然,插入过程中涉及到了元素的移动。 选择排序 选择排序(Selection sort)是一种简单直观的排序算法。这次我们依然将其分为有序组与无序组。 它的工作原理是每一次从无序组的数据元素中选出最小(或最大)的一个元素,存放在无序组的起始位置,无序组元素减少,有序组元素增加,直到全部待排序的数据元素排完。 希尔排序 也是插入排序的一种。也称为缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算 … 继续阅读

目录 记事本 |
w3cmm

React Context API

import React from ‘react’ import {render} from ‘react-dom’ const ThemeContext = React.createContext(‘light’) class ThemeProvider extends React.Component { state = {theme: ‘light’} toggleTheme = () => { this.setState(({theme}) => ({ theme: theme === ‘light’ ? ‘dark’ : ‘light’, })) } render() { return ( <ThemeContext.Provider value … 继续阅读

目录 记事本 | |
第 1 页,共 5 页12345