day01

1. 项目开发准备

1). 项目描述: 整体业务功能/功能模块/主体的技术/开发模式
2). 技术选型: 数据展现/用户交互/组件化, 后端, 前后台交互, 模块化, 项目构建/工程化, 其它
3). API接口: 接口的4个组成部分, 接口文档, 对/调/测接口

2. git管理项目的常用操作

1). 创建本地仓库创建.gitignore配置文件git initgit add *git commit -m "xxx"
2). 创建github远程仓库New Repository指定名称创建
3). 将本地仓库推送到远程仓库git remote add origin https://github.com/zxfjd3g/170612_JSAdvance.git 关联远程仓库git push origin master4). push本地的更新 git add *git commit -m "xxx"git push origin master5). pull远程的更新git pull origin master6). 克隆github上的项目:git clone https://github.com/zxfjd3g/xxx.git

3. 搭建项目

1). 使用create-react-app脚手架创建模板项目(工程化)
2). 引入antd-mobile, 并实现按需打包和自定义主题
3). 引入react-router-dom(v4): HashRouter/Route/Switchhistory: push()/replace()
4). 引入reduxredux/react-redux/redux-thunkredux: createStore()/combineReducers()/applyMiddleware()react-redux: <Provider store={store}> / connect()(Xxx)4个重要模块: reducers/store/actions/action-types

4. 登陆/注册界面

1). 创建3个1级路由: main/login/register
2). 完成登陆/注册的静态组件antd组件: NavBar/WingBlank/WhiteSpace/List/InputItem/Radio/Button路由跳转: this.props.history.replace('/login')收集表单输入数据: state/onChange/变量属性名

5. 实现简单后台

1). 使用webstorm创建基于node+express的后台应用
2). 根据需求编写后台路由
3). 使用postman测试后台接口
4). 使用nodemon实现后台应用的自动重启动
5). 路由回调函数的3步: 读取请求参数/处理/返回响应数据

day02

1. 使用mongoose操作数据库

1). 连接数据库
2). 定义schema和Model
3). 通过Model函数对象或Model的实例的方法对集合数据进行CRUD操作

2. 注册/登陆后台处理

1). models.js连接数据库: mongoose.connect(url)定义文档结构: schema定义操作集合的model: UserModel
2). routes/index.js根据接口编写路由的定义注册: 流程登陆: 流程响应数据结构: {code: 0, data: user}, {code: 1, msg: 'xxx'}

3. 注册/登陆前台处理

1). ajaxajax请求函数(通用): 使用axios库, 返回的是promise对象后台接口请求函数: 针对具体接口定义的ajax请求函数, 返回的是promise对象代理: 跨域问题/配置代理解决await/async: 同步编码方式实现异步ajax请求
2). reduxstore.js生成并暴露一个store管理对象reducers.js包含n个reducer函数根据老state和指定action来产生返回一个新的stateactions.js包含n个action creator函数同步action: 返回一个action对象({type: 'XXX', data: xxx})异步action: 返回一个函数: disptach => {执行异步代理, 结束时dispatch一个同步action}action-types.jsaction的type名称常量
3). componentUI组件: 组件内部没有使用任何redux相关的API通过props接收容器组件传入的从redux获取数据数据类型: 一般和函数容器组件connect(state => ({user: state.user}),{action1, action2})(UI组件)

day03

1. 实现user信息完善功能

1). 用户信息完善界面路由组件: 组件: dashen-info/laoban-info/header-selector界面: Navbar/List/Grid/InputItem/Button/TextareaItem收集用户输入数据: onChange监听/state 注册2级路由: 在main路由组件
2). 登陆/注册成功后的跳转路由计算定义工具函数计算逻辑分析
3). 后台路由处理
4). 前台接口请求函数
5). 前台reduxaction-types异步action/同步actionreducer
6). 前台组件UI组件包装生成容器组件读取状态数据更新状态

2. 搭建整体界面(上)

1). 登陆状态维护后台将userid保存到cookie中前台读取cookie中的useridredux中管理user信息状态2). 实现自动登陆整体逻辑分析ajax请求根据cookie中的userid查询获取对应的user信息

day04

1. 搭建整体界面(下)

封装导航路由相关数据(数组/对象)
抽取底部导航组件
非路由组件使用路由组件API

2. 个人中心

读取user信息显示
退出登陆

3. 用户列表

为大神/老板列表组件抽取用户列表组件
异步读取指定类型用户列表数据后台路由apireduxcomponent

4. socket.io

实现实时聊天的库
包装的H5 WebSocket和轮询---> 兼容性/编码简洁性
包含2个包:socket.io: 用于服务器端socket.io-client: 用于客户端
基本思想: 远程自定义事件机制on(name, function(data){}): 绑定监听emit(name, data): 发送消息io: 服务器端核心的管理对象socket: 客户端与服务器的连接对象

day05

1. 聊天组件功能:

后台接口
chat静态组件
发送消息与接收消息
获取消息列表显示
接收消息显示
完善列表显示

day06

1. 消息列表

对消息进行分组保存, 且只保存每个组最后一条消息
对于对象容器和数组容器的选择
数组排序

2. 未读消息数量显示

每个组的未读数量统计
总未读数量统计显示
查看消息后, 更新未读数量

3. 自定义redux和react-redux

理解redux模块1). redux模块整体是一个对象模块2). 内部包含几个函数createStore(reducers)  // reducers: function(state, action){ return newState}combineReducers(reducers)  // reducers: {reducer1, reducer2}  返回: function(state, action){ return newState}applyMiddleware()  // 暂不实现3). store对象的功能getState()  // 返回当前statedispatch(action)  // 分发action: 调用reducers()得到新的总state, 执行所有已注册的监听函数subscibe(listener) // 订阅监听: 将监听函数保存起来
理解react-redux模块1). react-redux模块整体是一个对象模块2). 包含2个重要属性: Provider和connect3). Provider值: 组件类作用: 向所有容器子组件提供全局store对象使用: <Provider store={store}><Xxx/></Provider>4). connect值: 高阶函数作用: 包装组件生成容器组件, 让被包装组件能与redux进行通信使用: connect(mapStateToProps, mapDispatchToProps)(Xxx)

尚硅谷-React项目-硅谷直聘相关推荐

  1. react项目之直聘

    #项目说明1 此项目是一个前后台分离的招聘的SPA,包括前端应用和后台应用2 包括用户注册/登录,大神/老板列表,实时聊天等模块3 前端:使用了React全家桶.ES6.Webpack等技术,构建页面 ...

  2. React-项目实战-硅谷直聘

    课程介绍 本套视频是尚硅谷前端学科项目:<<硅谷直聘>> 课堂实录 .  该项目是基于新版本 React 的全栈项目,此项目为一个前后台分离的招聘的 SPA, 包括前端应用和后 ...

  3. React直聘项目(一):客户端基本配置

    目录 前言: 客户端: 准备工作 项目(前端)源码目录设计 引入 antd-mo: 下载组件包:npm install antd-mobile --save 页面处理: 解决移动端点击的延迟: 实现组 ...

  4. 尚硅谷前端项目开发笔记

    尚硅谷前端项目开发笔记 B站视频直达,这个项目亮点在于所有 API 请求都并非在组件内编写,而是在组件内使用this.$store.dispatch() 派发任务,再由 Vuex(actions.mu ...

  5. Java web 2022跟学尚硅谷书城项目完整开源分享

    Java web 2022跟学尚硅谷书城项目完整开源分享 项目介绍 项目类图 sql建表和添加数据 界面展示 用户登录界面 用户注册界面 首页 添加购物车 我的购物车 我的订单 功能说明 项目介绍 跟 ...

  6. 尚硅谷VUE项目-前端项目问题总结07--产品详情页【vuex-排他操作foreach-放大镜-轮播图-兄弟组件通信$bus-购物车-路由跳转传参-路由传参+会话存储】-游客身份-节流

    尚硅谷VUE项目-前端项目问题总结07---产品详情页 1.静态组件(详情页还未注册为路由组件) 2.发请求 3.vuex-获取产品详情信息 3.1放大镜 3.2 属性值[排他操作] 3.3轮播图[j ...

  7. 「尚硅谷与腾讯云官方合作」硅谷课堂项目视频发布

    硅谷课堂是尚硅谷与腾讯云官方合作的项目,是一款基于微信公众号B2C模式的在线学习平台.项目包含后台系统和微信公众号部分,采用前后端分离开发模式. 本套项目教程针对有一定开发经验的Java程序员精心打造 ...

  8. 【YY笔记】React.入门(尚硅谷React教程笔记)

    前言 教程链接:尚硅谷React技术全家桶全套完整版:天禹老师讲得挺好,感谢免费分享教程 笔记用OneNote记的,不想重写了,但是想保留格式就只能用图片传上来--很烦 可能会有一些疏漏和小白的地方, ...

  9. B站尚硅谷React入门教程

    视频链接:React全家桶(技术栈) 第1章:React入门 1.1. React简介 1.1.1 官网 英文官网: https://reactjs.org/ 中文官网: https://react. ...

最新文章

  1. 扔掉源码,15张图带你彻底理解java AQS
  2. 未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker...
  3. python3 socketserver_Python3中的SocketServer
  4. Caused by: java.net.BindException: Could not start rest endpoint on any port in port range 8085
  5. 从一个简洁的进度刻度绘制中了解自定义 View 的思路流程
  6. Spring Boot 模板引擎FreeMarker集成
  7. 【Kafka】kafka KafkaException: Exception while loading Zookeeper JAAS login context ‘Client‘
  8. Android中如何提取和生成mp4文件
  9. Tableau可视化学习笔记:day03-04
  10. Python之nmap-ping扫描探测主机存活
  11. 09年全球IT企业互联网公司市值排行榜
  12. 前端性能优化-图片优化
  13. 1.什么是方法 2.方法定义俩变量求和打印 3.改进上面的 (在调用里面改值相加) 4.形参与实参 5.计算长方形周长 定义一个方法并打印出来 6.定义一个方法 计算圆的面积打印出来
  14. MarkDown-如何插入上划线,下划线,中划线汇总
  15. Appium+Android+Python,关闭广告
  16. 【新人填坑021】uwsgi部属jdango填坑
  17. 【飞轮储能】基于simulink的飞轮储能发电系统的仿真
  18. 量子通信需要量子计算机吗,【光明日报】关于量子通信,这些问题你困惑过吗...
  19. 宠物店小程序开发线上预约寄养洗护商城
  20. C++ STL函数 结构体数组sort()排序(henu.hjy)

热门文章

  1. 基于dockerfile 构建php7.4+parallel
  2. JTable快速清空表格内容
  3. 文档流图片的请求、预览、下载
  4. 详细安装使用教程】店侦探 - 跟踪店铺数据,学习运营技巧,引流关键词,电商人必备工具
  5. Windows服务器下安装PHP ASP JSP并存共用80端口
  6. 【sql :练习题5】查询「李」姓老师的数量
  7. uint16 累加_uint8和uint16 是什么数据类型?
  8. fullPage滚动
  9. Springboot整合Elasticsearch搜索引擎+vue页面
  10. 7-16 集体评分 (5 分)