2018年12月17日更新: 修复在qq浏览器下执行pop跳转时页面错位问题 本文的代码已封装为npm包发布:react-slide-animation-router 在React Router中,想要做基于路由的左右滑动,我们首先得搞清楚当发生路由跳转的时候到底发生了什么,和路由动画的原理. 首先我们要先了解一个概念:history.history原本是内置于浏览器内的一个对象,包含了一些关于历史记录的一些信息,但本文要说的history是React-Router中内置的history,每一个…
React-Router的中文文档可以参照如下链接: http://react-guide.github.io/react-router-cn/docs/Introduction.html 文档中介绍的很详细,下面将通过个人视角介绍Router的用法,并通过实例来呈现,可以给各位作为参考,记录个人心得. 一个网站,光有首页是不够的,需要添加页面跳转功能,才能让访问者逐层地看到网站丰富的内容.传统的前端页面使用超链接的方式进行跳转,比如:HTML标签中的  <a href=' '>点击</…
在.net开发员眼里,如果使用MVC,根据路由匹配原则,可以通过各种方式接收参数,比如 /Post/List/1, /Post/List/2,或者 /Post/List?id=1,/Post/List?id=2,后端PostController中的List Action都能接收到id为1或者2的参数,进行相应操作:但是,我们使用Ant Design For React的时候,如果使用react-router-dom作为路由,不管使用哪种参数,点击不同参数页面链接的时候,地址栏里页面参数是变了,但…
工作比较忙,一直没有时间总结下最近学习的一些东西,为了方便前端开发,我使用React+Redux+Router+antDesign总结了一个通用的模板,这个技术栈在前端开发者中是非常常见的. 总的来说,我这个工程十分便捷,对于初学者来说,可能包含到以下的一些知识点: 一.React-Router的使用 Router是为了方便管理组件的路径,它使用比较简单,一般定义如下就行,需要注意的是,react-router的版本有1.0-3.0,各个版本对应的API大致相似,但也有不同,我使用的是2.X的,…
react-navigation是一个导航库,要使用react-navigation来实现跳转页面,首先得在项目中安装此库,由于Yarn是Facebook提供的替代npm的工具,可以加速node模块的下载. 所以这里使用Yarn来安装react-navigation.至于Yarn的安装,详情见 React Native官网 安装命令: yarn add react-navigation react-navigation 主要包括三个组件: StackNavigator 导航组件 TabNavig…
修改nginx配置文件,添加try_file配置如下,即可实现对 React browser router 的支持. location / { root /var/www/mysite; try_files $uri /index.html; } 但是该方式也会存在缺点,只要/index.html存在,服务端就不会响应404,即使客户端请求了实际不存在的JS/CSS/图片文件. 要使非HTML请求实际资源不存在时响应404,方法是:若请求的资源不是HTML,则放弃尝试后备文件. location…
react 装 router yarn add react-router-dom@next…
其他章节请看: 七天接手react项目 系列 react 路由 本篇首先讲解路由原理,接着以一个基础路由示例为起点讲述路由最基础的知识,然后讲解嵌套路由.路由传参,最后讲解路由组件和一般组件的区别,以及编程式导航. Tip:我们要接手的 react 项目是:spug_web. 什么是路由 路由就是根据不同的 url(网址) 返回不同的页面(数据).如果这个工作在后端做(或者说由后端程序员做),就是后端路由:在前端做就是前端路由. 平时总说的 SPA(单页面应用)就是前后端分离的基础上,再加一层前…
react算是目前最火的js MVC框架了,写一个react系列的博客,顺便回忆一下react的基础知识,新入门前端的小白,可以持续关注,我会从零开始教大家用react开发一个完整的项目,也会涉及到webpack,node等前端知识,每天会更新一篇.这篇react的系列博客会覆盖react目前的所有知识点: 一.React基础1.React 虚拟DOM概念,React的性能高效的核心算法2.React组件,理解什么叫组件化3.React组件嵌套4.JSX内置表达式5.React的生命周期 二.R…
首先确认安装了node环境,Node >= 6. 如果对react 及 ant-design 一无所知,建议去阅读下api文档,react 可以在 codePen 在线练习. react Api中文文档     ant-design 中文文档 本人也是第一次接触react,对本教程如疑问,欢迎评论 或 发送至 15521285778@163.com 交流 1,全局安装Create React App , 创建项目 Create React App 是开始构建新的 React 单页应用程序的最佳方…
本文介绍的是react新特性react hooks,本文面向的是有一定react开发经验的小伙伴,如果你对react还不是很熟悉的话我建议你先学习react并多多联系. 首先我们都知道react有3种组件:分别是Function函数式无状态组件.class有状态组件.高阶组件.这里不对这3种组件做一一介绍. 本文重点是react hooks 一个最简单的Hooks 首先让我们看一下一个简单的有状态组件: class Example extends React.Component { constr…
一.项目概况 基于react+react-dom+react-router-dom+redux+react-redux+webpack2.0+react-photoswipe+swiper等技术混合开发的手机端仿微信界面聊天室——reactChatRoom,实现了聊天记录下拉刷新.发送消息.表情(动图),图片.视频预览,打赏.红包等功能. 二.技术栈 MVVM框架:react / react-dom 状态管理:redux / react-redux 页面路由:react-router-dom 弹…
其他章节请看: 七天接手react项目 系列 react 脚手架创建项目 前面我们一直通过 script 的方式学习 react 基础知识,而真实项目通常是基于脚手架进行开发. 本篇首先通过 react 脚手架创建项目,分析其目录结构,接着编写第一个组件.解决样式覆盖,最后配置代理 proxy 以及通过消息发布与订阅解决兄弟组件之间的通信问题. Tip:我们要接手的 react 项目是:spug_web. 使用 react 脚手架创建项目 react-cli-demo 前面我们学习 vue 脚手…
其他章节请看: react实战 系列 React 中的表单和路由的原理 React 中的表单是否简单好用,受控组件和非受控是指什么? React 中的路由原理是什么,如何更好的理解 React 应用的路由? 请看下文: 简单的表单 你有见过在生成环境中没有涉及任何表单的应用吗?大多 web 应用都会涉及表单.比如登录.注册.提交信息. 表单由于难用有时名声不好,于是许多框架针对表单做了一些神奇的事情来减轻程序员的负担. React 并未采用神奇的方法,但它却能让表单更容易使用. 在做实验测试 r…
学习React的时候,你可能听到最多的就是要先学习webpack, babel,要先学会配置然后才能学react 等等,一堆的配置就把我们吓着了,根本就没有心情就学习react了.其实在最开始学习react, 想要了解React 是什么的时候,我们完全不用配置,直接用script标签 引入React就可以了, 不过要注意,这里需要引入两个库:React 和ReactDom.React 用来创建UI, ReactDom 负责把React 创建的UI 渲染到浏览器中. 初学react只需下面这个模版…
前言 先说说 shouldComponentUpdate 提起React.PureComponent,我们还要从一个生命周期函数 shouldComponentUpdate 说起,从函数名字我们就能看出来,这个函数是用来控制组件是否应该被更新的. React.PureComponent 通过prop和state的浅对比来实现shouldComponentUpate(). 简单来说,这个生命周期函数返回一个布尔值. 如果返回true,那么当props或state改变的时候进行更新: 如果返回fal…
概述 本篇为<React Native之React速学教程>的第一篇.本篇将从React的特点.如何使用React.JSX语法.组件(Component)以及组件的属性,状态等方面进行讲解. What's React React是一个用于组建用户界面的JavaScript库,让你以更简单的方式来创建交互式用户界面. 当数据改变时,React将高效的更新和渲染需要更新的组件.声明性视图使你的代码更可预测,更容易调试. 构建封装管理自己的状态的组件,然后将它们组装成复杂的用户界面.由于组件逻辑是用…
概述 本篇为<React Native之React速学教程>的第一篇.本篇将从React的特点.如何使用React.JSX语法.组件(Component)以及组件的属性,状态等方面进行讲解. What's React React是一个用于组建用户界面的JavaScript库,让你以更简单的方式来创建交互式用户界面. 当数据改变时,React将高效的更新和渲染需要更新的组件.声明性视图使你的代码更可预测,更容易调试. 构建封装管理自己的状态的组件,然后将它们组装成复杂的用户界面.由于组件逻辑是用…
公司一直是前后端分离的,最近集团开始推进中后台可视化开发组件(基于React封装),跟师兄聊起来也听说最近对后台开发人员的前端能力也是越来越重视了.所以作为一名后端,了解下前端的框架对自己也是大有好处的! 首先,博主由于在小公司做过,有一定的前端基础,但是学习React框架的时候还是遇到了一些阻力.因为前端框架的一些思想是和后端完全不同的,特别是React这个面向组件的动态语言框架,用起来非常灵活. 顺便说点闲话,一个优秀的前端待遇会比同级别后端还要高一些,   因为一名优秀的前端不仅要不停的学…
点击上方"前端自习课"关注,学习起来~ 作者:陈俊宇 https://github.com/CJY0208 什么是状态保存? 假设有下述场景: 移动端中,用户访问了一个列表页,上拉浏览列表页的过程中,随着滚动高度逐渐增加,数据也将采用触底分页加载的形式逐步增加,列表页浏览到某个位置,用户看到了感兴趣的项目,点击查看其详情,进入详情页,从详情页退回列表页时,需要停留在离开列表页时的浏览位置上 类似的数据或场景还有已填写但未提交的表单.管理系统中可切换和可关闭的功能标签等,这类数据随着用户…
React中最重要的就是组件,写的更多的组件都是继承至 React.Component .大部分同学可能都会认为 Component 这个base class 给我们提供了各种各样的功能.他帮助我们去运行了这个 render function .然后最终把我们写在里面的 dom 标签或者子组件之类的渲染出来.渲染到我们的浏览器里面变成想要的页面的一个形式.在真正的看源码之前我也是这么认为的.但是看了源码之后发现他颠覆了我对他的一个认知. 在 React 当中不仅仅只有 Component 这一个…
底部标签是现在App的基本菜单实现 下面分别用 createBottomTabNavigator 和 createMaterialBottomTabNavigator 两种方法分别实现底部菜单 但此两种方法实现的效果,均 不支持滑动切换 ,支持滑动切换 会在后续文章中增加 效果预览如下: 先做一些准备工作: 1.index.js /** * @format */ import {AppRegistry} from 'react-native'; import App from './src/Ap…
1 React简介 2013年由Facebook推出,代码开源,函数式编程.目前使用人数最多的前端框架.健全的文档与完善的社区. 官网:reactjs.org 阅读文档:官网中的Docs React 16 以上的版本称为React Fiber 2 React开发环境准备与工程目录简介 1)开发环境搭建 1⃣️引用js文件来使用react  ——大项目中,性能较低,可维护性较差 2⃣️通过脚手架工具来编码 ——脚手架可以自动构建一个大型项目的开发流程和目录,允许以一定的方式来实现js相互引用:可以…
一个网页可以被拆分成若干小部分,每个部分都可以称为组件,即组件是网页中的一部分.组件中还可以有多个组件. 上一节中的App.js就是一个组件(继承了React.Component类的类). 一个组件的构成: import React from 'react'; class App extends React.Component { render (){ return ( <div>Hello world</div> ); } } export default App; //====…
react 的第一个组件 写了 react 有一个半月,现在又有半个月没写了,感觉对其仍旧比较陌生. 本文分两部分,首先聊一下 react 的相关概念,然后不使用任何语法糖(包括 jsx)或可能隐藏底层技术的便利措施来构建 React 组件. Tip:从一项新技术的底层元素起步有利于使用者更好的长期使用它 跨平台 大部分 react 应用是在 Web 平台上.而 React Native 和 React VR 这样的项目则创造了 react 应用在其他平台上运行的可能 React 应用主要成分…
Props & onChange 的原罪 .「props & onChange 接口规范」它不是一个典型的「程序接口规范」. 当你拿到一个可视组件的 ref,却没有类似 setProps() 这样的方法来改变其 props,你只能在 render() 方法中,通过 jsx 语言来设置其 props.这意味着父元素必须保存并维护这个 props 对应的值,而更多时候,父容器只是想一次性的设置一个值,然后就走,让以后的事情交给子元素自己去维护.当然,你也可以通过 ref 来获取子元素的应用,然…
React Native & react-native-web-player & React Native for Web https://github.com/dabbott/react-native-web-player https://dabbott.github.io/react-native-web-player/ import React, { Component } from 'react' import { AppRegistry, StyleSheet, Text, Vi…
1. JSX JSX是一种拥有描述UI的JavaScript扩展语法,React使用这种语法描述组件的UI. 1.1 基本语法 JSX可以嵌套多个HTML标签,可以使用大部分符号HTML规范的属性. TodoList.js: import React, { Component } from 'react' class TodoList extends Component { render(){ return ( <ul> <li>To Do</li> <li>…
组件 1. 无状态组件 在React中,组件的名字必须用大写字母开头,而包含该组件定义的文件名也应该是大写字母(便于区分,也可以不是). 无状态组件是纯展示组件,仅仅只是用于数据的展示,只根据传入的props来进行展示,不涉及到state状态处理,通过函数式的方式来创建一个无状态函数式组件(大多数组件都是无状态组件,通过简单的组合可以构建成其他的组件,最后合并成一个大的应用). 无状态函数式组件是一个只带有render方法的组件,通过函数形式或者箭头函数形式创建,该组件无state状态. imp…
react里面有几个需要区别开的函数 React.createClass .React.createElement.Component 首选看一下在浏览器的下面写法: <div id="app"> </div> <script src="../js/react.js"></script> <script src="../js/react-dom.js"></script> &…