React相关 React 是一个采用声明式,高效而且灵活的用来构建用户界面的框架. JSX 本质上来讲,JSX 只是为React.createElement(component, props, ...children)方法提供的语法糖.比如下面的代码: const element = ( <h1 className="greeting"> Hello, world! </h1> ); 编译为: const element = React.createEleme…
图书管理 src / pages / BookAdd.js   // 图书添加页 /** * 图书添加页面 */ import React from 'react'; // 布局组件 import HomeLayout from '../layouts/HomeLayout'; // 编辑组件 import BookEditor from '../components/BookEditor'; class BookAdd extends React.Component { render() {…
本篇带你使用 AntDesign 组件库为我们的系统换上产品级的UI! 安装组件库 在项目目录下执行:npm i antd@3.3.0 -S 或 yarn add antd 安装组件包 执行:npm i babel-plugin-import -D 安装一个babel插件用于做组件的按需加载(否则项目会打包整个组件库,非常大) 根目录下新建.roadhogrc文件(别忘了前面的点,这是roadhog工具的配置文件,下面的代码用于加载上一个命令安装的import插件),写入: { "extraBa…
前言 从深圳回长沙已经快4个月了,除了把车开熟练了外,并没有什么值得一提的,长沙这边要么就是连续下一个月雨,要么就是连续一个月高温暴晒,上班更是没啥子意思,长沙这边的公司和深圳落差挺大的,薪资也是断崖式下跌,至于幸福指数,额,我感觉除了离家近之外,并没有什么其它感觉,同样是每天除了上班就是在上下班的路上,而且人开始变得越来越懒,就想趟.......在长沙4个月写了40页书稿,我自己都开始鄙视自己,换做在深圳,第6本书早已完稿~长沙这边其实绝大多数打工人工资都不高,可是看上去一个个挺有钱似的~ 额…
asp.net-core-react asp.net core react 简介 开发依赖环境 .NET Core SDK (reflecting any global.json): Version: 2.2.300 Runtime Environment: OS Name: Mac OS X Host (useful for support): Version: 2.2.5 node -v v10.16.0 开发语言 asp.net core react 开发工具 vscode 开发流程 创建…
经典项目,练手必备. 图书管理系统 需求分析(大致,并不专业):1.需要有用户管理: 1.1 用户注册: 1.2 用户登录: 1.3 用户信息修改: 1.4 用户修改密码: 2.需要有书本管理: 2.1 添加书籍: 2.2 借出书籍: 2.3 归还书籍: 2.4 修改/更新书籍信息: 3.需要权限管理: 3.1 普通用户与管理员的区别: 3.2 拥有不同权限可浏览不同的页面: 实现技术:1.struts2表现层框架: 2.hibernate持久层框架: 3.tomcat web容器: 4.c3p…
SPA的鉴权方式和传统的web应用不同:由于页面的渲染不再依赖服务端,与服务端的交互都通过接口来完成,而REASTful风格的接口提倡无状态(state less),通常不使用cookie和session来进行身份认证. 比较流行的一种方式是使用web token,所谓的token可以看作是一个标识身份的令牌.客户端在登录成功后可以获得服务端加密后的token,然后在后续需要身份认证的接口请求中在header中带上这个token,服务端就可以通过判断token的有效性来验证该请求是否合法. 我们…
高阶组件:formProvider 高阶组件就是返回组件的组件(函数) 为什么要通过一个组件去返回另一个组件? 使用高阶组件可以在不修改原组件代码的情况下,修改原组件的行为或增强功能. 我们现在已经有了带有表单校验功能的添加用户的表单,这里的表单有3个字段:name.age.gender,并且每个字段都有它自己的校验规则和对应的错误信息. 要做一个添加图书的功能,图书的表单有name.price.owner_id三个字段,一样地,每个字段有它自己的校验规则和错误信息. 仔细想想,每当我们需要写一…
添加操作列 编辑与删除功能都是针对已存在的某一个用户执行的操作,所以在用户列表中需要再加一个“操作”列来展现[编辑]与[删除]这两个按钮. 修改/src/pages/UserList.js文件,添加方法handleEdit与handleDel,并在table中添加一列: ... class UserList extends React.Component { constructor (props) { ... } componentWillMount () { ... } // 编辑 handl…
我们需要记录每一个字段当前的有效状态,有效时隐藏错误信息,无效时显示错误信息. 而这个有效/无效,可以在表单值改变的时候进行判断. 我们对/src/pages/UserAdd.js进行修改: 首先修改了state的结构,把每个表单的值都放到了一个form字段中,方便统一管理:然后每个表单的值都变为了一个包含valid和value还有error字段的对象,valid表示该值的有效状态,value表示该表单具体的值,error表示错误提示信息: ... constructor () { super(…