w3cmm

聊一聊我对redux的理解

react是单向数据流动的的框架,数据可以从顶层组件依次传递给层级最深的组件。 react组件通信 react组件树形结构犹如家族关系: 爷爷要和小红通信:爷爷告诉爸爸,爸爸告诉小红。爸爸要和叔叔通信:可以将两者交互的state提升至爷爷,通过爷爷state的改变来完成通信使命。 现实项目中需求远比上面的关系要复杂的多,状态便变得难于管理。如果能把需要通信的组件状态放到一个store的地方,这样只需要去store更新状态与之相关的视图自动更新,这样是不是简单了很多了呢? 于是就有了redux这样的框架,redux是JavaScript 状态容器,提供可预测化的状态管理。 redux redux 设计思想: 从例子入手 来看一个最简单的例子: //reducers/inde … 继续阅读

目录 记事本 | |
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

规则引擎

规则引擎系统(React+Mobx) 多对多树形结构可视化规则流程图, 使用Mobx共享规则编辑模块状态

目录 Contributed |
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协议版本很重要的区别 … 继续阅读

目录 记事本 |
第 1 页,共 25 页12345...1020...最旧 »