react

學習 React.js:瞭解 Flux,React.js 的架構

霸气de小男生 提交于 2020-03-16 17:58:55
某厂面试归来,发现自己落伍了!>>> Getting To Know Flux, the React.js Architecture Ken Wheeler (@ken_wheeler) # 簡介 歡迎來到學習 React 的第三章。今天我們將會學習臉書的 Flux 架構的工作方式,以及我們怎麼把它應該用到我們的工程中。 如果你沒有準備好,我強烈建議你回去看看這個系列的 第一 、 第二 章, Getting Started & Concepts 和 Building a Real Time Twitter Stream with Node and React 。當然我不強迫你們,不過如果你不熟悉 React.js 的化,這兩篇文章肯定對你很有用。 ## 什麼是 Flux? Flux 是臉書內部用來配合 React 工作的一個架構。它不是框架或者庫。它只是一個配合 React 的新的體系結構,以及單向數據流的概念。 也就是說,臉書提供了了一個包含了 Dispatcher 庫的 repo。這個庫是用來專門處理那些全局的,廣播消息到註冊事件上的發佈/訂閱模式的。 一個典型的 Flux 架構用例是,配合 NodeJS 的 EventEmitter 模塊來創建一個事件系統,用於管理應用的狀態。 解釋 Flux 的最好方式我想應該就是把它的組件給挨個介紹一下: Actions – 將數據傳遞給

项目常用eslint配置(Vue/React/TypeScript)

纵饮孤独 提交于 2020-03-16 17:47:38
项目常用eslint配置(Vue/React/TypeScript) 记录一下常用的eslint配置。 Vue项目常用eslint配置 需要安装依赖(Vue这里使用standard扩展和vue插件,所以需要安装) { "devDependencies": { "babel-eslint": "^10.0.2", "eslint": "^6.1.0", "eslint-config-imperative-es6": "^2.1.0", "eslint-config-standard": "^10.2.1", "eslint-plugin-import": "^2.17.2", "eslint-plugin-node": "^5.2.0", "eslint-plugin-promise": "^3.4.0", "eslint-plugin-standard": "^3.0.1", "eslint-plugin-vue": "^4.7.1" // vue插件 } } .eslintrc.js文件配置 // https://eslint.org/docs/user-guide/configuring module.exports = { // 默认情况下,ESLint 会在所有父级目录里寻找配置文件,一直到根目录。ESLint 一旦发现配置文件中有 "root": true

谈谈React

丶灬走出姿态 提交于 2020-03-16 14:25:11
某厂面试归来,发现自己落伍了!>>> ##React无限好,只是我矫情 前置知识点: ES6的class ES6的模板字符串 ES6的模块Modules 本文带有强烈的个人观点,虽然我真的很喜欢React,React真的好用! 但是喜欢不等于无脑,学习其中的精髓才是重点. 其实,我也中了React的毒.什么项目一到我手上,我就想着用React来写.React的思想和项目的结构,可以说我是一见钟情.组件化,数据单流与唯一都让我爱不释手.有一段时间,我都接受不了不用React的项目. 但是今天,我就是来到当搅屎棍的,待会将用ES6来代替React.在此之前,想想操作DOM的模式已经存活了很久,可以说非常的成熟,各种资源也非常的多,要说他的缺点,我认为以下是最主要的点: DOM操作的龟速. 直接操作DOM虽然简单暴力,但在一定程度上会导致操作的冲突,好比某个DOM在几处不同的地方在不同的时间被修改,出现问题的话就难以判断是哪个操作何时导致的(也就是维护性差),也很难保存统一DOM的状态,导致数据不一致等问题. 考虑到这些点,我觉得React的优势在某些情况下,并没有想象中的大,比如说展示性的页面,后台等.本身DOM操作就并不频繁,且不追求性能,那么React的VD(Virtual-DOM)就变得杀鸡用牛刀,甚至可以说是代码冗余 ##未来的世界,React可能已经逝去,但ES6肯定还在

【天赢金创】Reflux学习指南

旧时模样 提交于 2020-03-16 14:24:56
某厂面试归来,发现自己落伍了!>>> 这个是 simple Todo with React and2 的第二部 - Reflux 第一部可以看 simple Todo with React and Flux1 也可以看 学习flux的一些浅显理解2 Reflux 相对 Flux 来说,真的是简单很多,好理解很多。 官方API2 和很多开发者的分享也都说得很明白了。所以我就简单讲讲我的理解 How Reflux Works Reflux 给我们封装了一些方法和属性,可以让我们的数据和操作可以在 Actions Stores Components 之间单向流动,不再需要 Dispatcher 用 Reflux.createStore() 方法创建的 Store 可以添加一个 listenables 的属性,只要把我们的 Actions 放在里面,当我们执行 Actions 里的行动的时候,就会自动触发 Store 里的 on"Actions" 的方法,就这完成了 Actions -> Stores 而在 Controller View 中,有 Store.listen(fn) 方法,只要 Store 执行了 this.trigger(),就会触发这个在 Controller View 里的 fn 函数,我们就可以在这个 fn 里改变 state 的值, Components

学习react笔记

烂漫一生 提交于 2020-03-16 04:10:56
node中导入模块:var 名称 = require('模块标识符') node中向外暴露成员的形式:module.exports = {} 在ES6中,也通过规范的形式,规定了ES6中如何导入和导出模块 ES6中导入模块,使用 import 模块名称 from '模块标识符' import '表示路径' import *** from *** 是ES6中导入模块的方式 在ES6中,使用export default 和 export 向外暴露成员 例如: // test.js export default { name: 'zs', age: 20 } 或是 // test.js var info = { name: 'zs', age: 20 } export default info 在main.js中接收,test.js使用export default 向外暴露的成员 import person from './test.js' console.log(person); 注意: 1、export default 向外暴露的成员,可以使用任意变量来接收 2、在一个模块中,export default 只允许向外暴露一次 3、在一个模块中,可以同时使用export default 和export 向外暴露成员 4、使用export向外暴露的成员,只能使用{ }的形式来接收

五月末--我的第一个\"SPA\"项目完成

一笑奈何 提交于 2020-03-14 13:52:28
Days Todo(web版Todo应用) 这段时间一直在学习React相关内容,最近我用react相关技术实现了一个最经典的React项目--Todo应用。我尽我最大的努力实现了我想到的功能,尽管还有些小瑕疵。 这是我的Github项目地址: https://github.com/yan358941877/react-todo 欢迎 issue , star or follow !我会继续开源更多有趣的项目 地址 点击进入 部分效果截图 登录注册 日历+todo功能 工具&技能 react redux react-redux react-router LeanCloud :提供后端云服务 使用 git clone https://github.com/yan358941877/react-todo.git cd react-todo # 安装依赖 npm install # 开发环境 npm run start # 打包 npm run build 实现功能 登录、注册 日历显示 日期切换 显示选中月份中哪些天有todo记录 todo列表显示选中日期的todo记录 新增todo 修改todo 删除todo 特别关注的todo 应用退出 目录结构 ├─actions ├─components │ ├─Calendar │ ├─CalendarItem │ ├─LoginForm │

react路由传参的三种方式:

岁酱吖の 提交于 2020-03-14 12:48:14
1. params 传值:该方式传递参数只能通过字符串的方式传递,如果要传递一个对象,需要先将这个对象转化成字符串(JSON.stringify(obj)),接收参数的时候要用this.props.params.xxx,接收参数的时候也可以转成对象使用JSON.parse(string)   router.push({     name:'/detail:id',     params:{id:item.id}   }) 2. query传值:前提是必须由其他页面跳过来,参数才会被传递过来, query方式可以传递任意类型的值,但是页面的url会由query的值拼接在后面,url会很长,获取方法是t       this.props.location.query.xxx   router.push({     pathname:'/detail',     query:{id:item.id}   }) 3 state传值:state方式也是可以传递任意类型的值,而且不以明文的方式传输就是不拼在url后面,接收参数也是this.props.state.xxx router.push({   pathname:'/detail',   state:{id:item.id} }) 注意:当使用params传参的时候要在路由后面加参数名,并且传参的时候

React生命周期函数

喜你入骨 提交于 2020-03-14 10:26:29
/* https://reactjs.org/docs/react-component.html React生命周期函数: 组件加载之前,组件加载完成,以及组件更新数据,组件销毁。 触发的一系列的方法 ,这就是组件的生命周期函数 组件加载的时候触发的函数: constructor 、componentWillMount、 render 、componentDidMount 组件数据更新的时候触发的生命周期函数: shouldComponentUpdate、componentWillUpdate、render、componentDidUpdate 你在父组件里面改变props传值的时候触发的: componentWillReceiveProps 组件销毁的时候触发的: componentWillUnmount 必须记住的生命周期函数: *加载的时候:componentWillMount、 render 、componentDidMount(dom操作) 更新的时候:componentWillUpdate、render、componentDidUpdate *销毁的时候: componentWillUnmount */ import React, { Component } from 'react'; class Lifecycle extends Component {

学习Vue.js(一)

对着背影说爱祢 提交于 2020-03-12 12:21:00
学习VueJS 介绍 Vue.js [vju:]是UI层的渐进式框架。 什么是框架?可以被复用。 相关框架: React Angular 为什么使用Vue.js? 受到Angular框架的启发 比Angular简单且使用广泛 性能高 基于组件(web component)开发 优势 提高代码复用率 降低模块之间耦合度 提高开发速度 提高代码质量 MV*模型 直接操作DOM:Jquery.js、zepto.js MVC模型 Module:用于存放数据 View:用于更新DOM Controller:调用Module给View渲染使用 MVP模型 Module:用于存放数据 View:响应用户交互行为 Presenter Module改变,修改DOM View响应用户交互时,通知Presenter,Presenter负责更新Module,以及修改DOM。 MVVM模型 Module:用于存放数据 View:响应用户交互行为 VIewModel:可以理解为自动化调用的Presenter 参考文档 英文网站: https://vuejs.org/ 中文网站: https://cn.vuejs.org/ Weex开发初探 来源: oschina 链接: https://my.oschina.net/wallenheng/blog/3192443

React的声明周期

丶灬走出姿态 提交于 2020-03-12 11:55:49
React声明周期(16.3版本以前) 分为3个阶段: 1. 加载阶段 1. constructor ( ) // 加载的时候调用一次,可以舒适化state 2. render ( ) // 渲染页面 3. componentDidMount ( ) // 组件挂在后触发 2. 更新阶段 1. componentWillReceiveProps ( nextProps ) // 接收新的props时触发 2. shouldComponentUpdate ( nextProps, nextState ) // 组件props或者state改变时触发, true: 更新, false: 不更新 // React.PureComponen 3. componentWillUpdate ( nextProps, nextState ) // 组件更新前触发 4. componentDidUpdate ( nextProps, nextState ) // 组件更新后触发 3. 卸载阶段 1. componentWillUnmount ( ) 16.4版本以后 1. getDerivedStateFromProps ( ) // 这个生命周期函数是为了替代componentWillReceiveProps存在的 // getDerivedStateFromProps是一个静态函数