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. java图片序列化_Java中的强大武器——对象的序列化
  2. awstats CGI模式下动态生成页面缓慢的改进
  3. http://q.cnblogs.com/q/54251/
  4. python语言特点有哪些-Python是什么?Python有什么特点?
  5. Bluetooth ATT介绍
  6. 手把手教你Homestead安装,并填坑!!
  7. C语言学习之有一个3X4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值
  8. 三种通用应用层协议protobuf、thrift、avro对比
  9. Angular jasmine如何从detectChange触发refreshView进而执行到Component的hook实现
  10. 中国的程序员为什么这么辛苦?
  11. python学籍管理系统 flask_taskday05-Python之flask学习 web开发最基本的需要(特别详细且适用)...
  12. ListView与GridView优化
  13. mysql 删除创建表分区_创建,增加,删除mysql表分区
  14. 004、SVN更新改密码
  15. python3语法学习第四天--序列
  16. Linux shell脚本编写
  17. 我打算学计算机学英语,英语人教版八年级上册我打算学习计算机科学.doc
  18. “荣光医院”急救中心 73 问答
  19. 28种美女最漂亮的拍照姿势
  20. C语言人物复杂移动与异步输入

热门文章

  1. 2023实体消费市场火爆!商圈排长龙,一日千单不是梦!
  2. SecureCRT介绍
  3. nginx二级目录转发404的解决方法
  4. 地图api - 批量转换坐标经纬度
  5. 关于NG-ZORRO的历史
  6. python实现caj转pdf代码
  7. 韦德之道---说一说韦德的全明星之旅
  8. mysql游标_MySQL游标概念与用法详解
  9. 黑白格问题(c++实现)
  10. QLORA:量化LLMA的有效微调