React使用笔记2--创建登录组件
最近在学习使用React作为前端的框架,《React使用笔记》系列用于记录过程中的一些使用和解决方法。
本文记录搭建登录页面的过程。
根据产品规划划分模块
主要页面逻辑
在这里,本骚年就建一个比较简单的项目。该项目与之前的Angular使用笔记项目长得完全一致,但我们这里用React来实现吧。
- 我们的主要页面逻辑如下:
- 1.登录页面,输入账号和密码即可
- 2.模块页面
创建登录页面
- 首先我们在components文件夹内添加一个login.jsx
|
|
- 在jsx中,因为js中class为保留字,所以要写成className
- 此处引用了Bootstrap的样式,在templates/index.ejs中添加
|
|
React Router
安装使用
- 通过npm安装
|
|
- 还需要安装history,它也是React Router的依赖,且在npm 3+下不会自动安装
|
|
- 添加Route组件
|
|
React Router组件
- Router组件
Router组件本身只是一个容器,真正的路由要通过Route组件定义。 Route组件
Route组件还可以嵌套。12345<Router history={hashHistory}><Route path="/" component={App}><Route path="/repos" component={Repos}/></Route></Router>Link组件
Link组件用于取代元素,生成一个链接,允许用户点击后跳转到另一个路由,可接收Router的状态。- IndexLink组件
如果链接到根路由/,不要使用Link组件,而要使用IndexLink组件。 - IndexRoute组件
IndexRoute显式指定Home是根路由的子组件,即指定默认情况下加载的子组件,即该路径的index.html。 - Redirect组件
Redirect组件用于路由的跳转,即用户访问一个路由,会自动跳转到另一个路由。 - IndexRedirect组件
IndexRedirect组件用于访问根路由的时候,将用户重定向到某个子组件。
path属性
Route组件的path属性指定路由的匹配规则。
path属性可以使用相对路径(不以/开头),匹配时就会相对于父组件的路径。
- :paramName
- 匹配URL的一个部分,直到遇到下一个/、?、#为止。
- 这个路径参数可以通过this.props.params.paramName取出。
- ()
- ()表示URL的这个部分是可选的。
匹配任意字符,直到模式里面的下一个字符为止。匹配方式是非贪婪模式。
**匹配任意字符,直到下一个/、?、#为止。匹配方式是贪婪模式。
Histories
React Router是建立在history之上的。 简而言之,一个history知道如何去监听浏览器地址栏的变化,并解析这个URL转化为location对象,然后router使用它匹配到路由,最后正确地渲染对应的组件。
- createHashHistory
- 这是一个你会获取到的默认history,如果你不指定某个history(即 {/ your routes /})。
- 它用到的是URL 的hash(#)部分去创建形如examp 大专栏 React使用笔记2--创建登录组件le.com/#/some/path的路由。
- ?_k=ckuvup是每一个location创建的一个唯一的key,并把它们的状态存储在session storage中。当访客点击“后退”和“前进”时,我们就会有一个机制去恢复这些location state。可使用queryKey: false关闭。
- createBrowserHistory
- Browser history使用History API在浏览器中被创建用于处理URL,新建一个像这样真实的URL example.com/some/path。
- 使用Browser history需要在服务器进行配置。
- createMemoryHistory
- Memory history不会在地址栏被操作或读取。
js中设置跳转
- 使用browserHistory.push
|
|
- 使用context对象
|
|
添加路由
在index.js设置路由
|
|
在components里login.ejs添加路由跳转
- 添加登录按钮的click事件
- 添加loginSubmit属性以及跳转
|
|
结束语
从Angular转React中遇到不少问题呢,毕竟两者很多概念和使用方法都很不一样,使用过程中也是大开眼界了呀。
此处查看项目代码(仅包含app部分)
此处查看页面效果
查看Github有更多内容噢:https://github.com/godbasin
更欢迎来被删的前端游乐场边撸猫边学前端噢
React使用笔记2--创建登录组件的更多相关文章
- react学习笔记1之声明组件的两种方式
//定义组件有两种方式,函数和类 function Welcome(props) { return <h1>Hello, {props.name}</h1>; } class ...
- Yii2.0学习笔记:创建登录表单
第一步:在model层创建一个EntryForm.php文件 复制以下代码,注意model的文件.方法.类的命名规范(大小写) <?php namespace app\models; use Y ...
- React学习笔记 - 组件&Props
React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你 ...
- React学习笔记 - Hello World
React Learn Note 1 React学习笔记(一) 标签(空格分隔): React JavaScript 前.Hello World 1. 创建单页面应用 使用Create React A ...
- React学习笔记 - 元素渲染
React Learn Note 3 React学习笔记(三) 标签(空格分隔): React JavaScript 二.元素渲染 元素是构成react应用的最小单位. 元素是普通的对象. 元素是构成 ...
- React学习笔记 - JSX简介
React Learn Note 2 React学习笔记(二) 标签(空格分隔): React JavaScript 一.JSX简介 像const element = <h1>Hello ...
- 《React后台管理系统实战 :一》:目录结构、引入antd、引入路由、写login页面、使用antd的form登录组件、form前台验证、高阶函数/组件
实战 上接,笔记:https://blog.csdn.net/u010132177/article/details/104150177 https://gitee.com/pasaulis/react ...
- 理解React中es6方法创建组件的this
首发于:https://mingjiezhang.github.io/(转载请说明此出处). 在JavaScript中,this对象是运行时基于函数的执行环境(也就是上下文)绑定的. 从react中的 ...
- react系列笔记1 用npx npm命令创建react app
react系列笔记1 用npx npm命令创建react app create-react-app my-app是开始构建新的 React 单页应用程序的最佳方式.它已经为你设置好了开发环境,以便您可 ...
随机推荐
- pyinstaller 3.6版本通过pip安装失败的解决办法
本机中原pyinstaller版本为3.5版本,本打算通过 pip install --upgrade pyinstaller进行升级,竟然报错,后面卸载再重新安装也一样报错,没办法看来通过pip是暂 ...
- HTML5之FileReader小结
方法: 方法名 参数 描述 abort none 中断读取 readAsBinaryString file 将文件读取为二进制码 readAsDataURL file 将文件读取为 DataURL r ...
- Gson使用指南(二)
注:此系列基于Gson 2.4. 一.Gson的流式反序列化 自动方式 常用的重载方法: Gson.toJson(Object); Gson.fromJson(Reader,Class); Gson. ...
- C#通过窗体应用程序操作数据库(增删改查)
为了体现面向对象的思想,我们把“增删改查”这些函数封装到一个数据库操作类里: 为了便于窗体程序与数据库之间进行数据交互,我们建一个具有数据库行数据的类,通过它方便的在窗体程序与数据库之间传输数据: 我 ...
- Codeforces 1293A - ConneR and the A.R.C. Markland-N
题目大意: ConneR老师想吃东西,他现在在大楼的第s层,大楼总共有n层,但是其中有k层的餐厅关门了. 然后给了这k层关门的餐厅分别所在的楼层. 所以问ConneR老师最少得往上(或者往下)走几层楼 ...
- inotify+rsync实时同步
主服务器上安装inotify和rsync,备用服务器上安装rsync 主服务器上修改/etc/rsyncd.conf配置文件 三. 创建密码文件,防火墙设置,客户端和服务器端都要做如下操作 echo ...
- python编程常用功能(随时添加)
1 pandas查看DataFrame列或具体值数据类型 2 left join/right join/inner join的区别 3 df_series.value_counts() 4 删除dat ...
- 感叹号在Linux bash中使用技巧
1. 重复执行上一条指令 !! [root@iZ23t6nzr7dZ python]# ls /usr/local/ aegis bin etc games include lib lib64 li ...
- TreeviewEditor.rar
本工具可以打开.保存指定格式的XML文件. 树形控件的节点可以编辑.删除.增加.使用本工具看方便地创建书或论文的目录大纲,我用这个工具已经写了好几本书了. 动态图1: 动态图2:编辑效果,支持节点拖曳 ...
- 计算 $s=1+(1+2)+(1+2+3)+\cdots+(1+2+3+\cdots+n)$
#include<stdio.h> //编写一个程序,计算 s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n) 的值,要求n从键盘输入. main() { int i, ...