当前位置: 首页 > news >正文

深圳网站优化方案河南省住房和城乡建设门户网站

深圳网站优化方案,河南省住房和城乡建设门户网站,广西网站建设推荐,seo关键词排名优化技巧0、项目规范 一、路由相关 npm i react-router-dom npm i react-router-config // 用于配置路由映射的关系数组1. 路由重定向 访问 /路径 》 重定向到 /discover路径 2. 二级路由#xff1a; 二、网络请求相关 npm i axios页面中使用暴露 出来的request发送网络请求#…0、项目规范 一、路由相关 npm i react-router-dom npm i react-router-config // 用于配置路由映射的关系数组1. 路由重定向 访问 /路径 》 重定向到 /discover路径 2. 二级路由 二、网络请求相关 npm i axios页面中使用暴露 出来的request发送网络请求 封装service config.js: 配置baseUrl、timeout等参数 const devBaseURL http://123.207.32.32:9001; const proBaseURL http://123.207.32.32:9001; export const BASE_URL process.env.NODE_ENV development ? devBaseURL: proBaseURL;export const TIMEOUT 5000; request.js创建一个axios实例暴露出去供整个项目的所有页面使用 import axios from axios; import { BASE_URL, TIMEOUT } from ./config; const instance axios.create({baseURL: BASE_URL,timeout: TIMEOUT }); instance.interceptors.request.use(config {// 1.发送网络请求时, 在界面的中间位置显示Loading的组件// 2.某一些请求要求用户必须携带token, 如果没有携带, 那么直接跳转到登录页面// 3.params/data序列化的操作return config; }, err { }); instance.interceptors.response.use(res {return res.data; }, err {if (err err.response) {switch (err.response.status) {case 400:console.log(请求错误);break;case 401:console.log(未授权访问);break;default:console.log(其他错误信息);}}return err; });export default instance; 三、redux相关 redux代码规范如下 每个模块有自己独立的reducer通过combineReducer进行合并异步请求代码使用redux-thunk并且写在actionCreators中redux直接采用redux hooks方式编写不再使用connect npm i redux react-redux redux-thunk使用redux提供的hook来简化代码 import React, {memo, useEffect} from react; import {shallowEqual, useDispatch, useSelector} from react-redux; import {getTopBannerAction} from ./store/actionCreator;function HYRecommend(props) {const {topBanners} useSelector((state) {return {topBanners: state.recommend.topBanners}}, shallowEqual)// 组件和redux关联要做两件事// 1. 获取数据// 2. 进行操作const dispatch useDispatch()// 发送网络请求useEffect(() {dispatch(getTopBannerAction())}, [dispatch])return (divh2HYRecommend:{topBanners.length}/h2/div) } export default memo(HYRecommend)/*function HYRecommend(props) {const {getBanners, topBanners} propsuseEffect(() {getBanners()}, [getBanners])return (divh2HYRecommend: {topBanners.length}/h2/div) } const mapStateToProps (state) {return {topBanners: state.recommend.topBanners} } const mapDispatchToProps (dispatch) {return {getBanners: () {dispatch(getTopBannerAction())}} } export default connect(mapStateToProps, mapDispatchToProps)(memo(HYRecommend))*/ 四、数据可变性的问题 在React开发中我们总是会强调数据的不可变性 无论是类组件中的state还是redux中管理的state事实上在整个JavaScript编码过程中数据的不可变性都是非常重要的 数据的可变性引发的问题案例 我们明明没有修改obj只是修改了info但是最终obj也被我们修改掉了原因非常简单对象是引用类型它们指向同一块内存空间两个引用都可以任意修改 有没有办法解决上面的问题呢 进行对象的拷贝即可Object.assign或扩展运算符 这种对象的浅拷贝有没有问题呢 从代码的角度来说没有问题也解决了我们实际开发中一些潜在风险从性能的角度来说有问题如果对象过于庞大这种拷贝的方式会带来性能问题以及内存浪费 有人会说开发中不都是这样做的吗 从来如此便是对的吗 认识ImmutableJS 为了解决上面的问题出现了Immutable对象的概念 Immutable对象的特点是只要修改了对象就会返回一个 新的对象旧的对象不会发生改变 但是这样的方式就不会浪费内存了吗 为了节约内存又出现了一个新的算法Persistent Data Structure持久化数据结构或一致性数据结构 当然我们一听到持久化第一反应应该是数据被保存到本地或 者数据库但是这里并不是这个含义 用一种数据结构来保存数据当数据被修改时会返回一个对象但是新的对象会尽可 能的利用之前的数据结构而不会对内存造成浪费 如何做到这一点呢结构共享。 ImutableJS常见API 注意我这里只是演示了一些API更多的方式可以参考官网 JavaScript和ImmutableJS直接的转换 对象转换成Immutable对象Map 数组转换成Immutable数组List 深层转换fromJS Immutable类型转成toJS() ImmutableJS的基本操作 修改数据set获取数据get 在项目中结合Redux管理数据 1.使用redux-immutable中的combineReducers npm i redux-immutable2.所有的reducer中的数据都转换成Immutable类型的数据 npm i immutable五、style相关 .CSS采用普通CSS和styled-component结合来编写全局采用普通CSS、局部采用styled-component; 六、在项目中使用redux保存网络请求获取的数据并供页面使用的步骤 修改对应组件recommend中的store/reducers.js文件 在store/constants.js文件中新增 常量 封装api接口函数 在store/actionCreator.js文件中新增getAction和changeAction函数 在需要拿到数据的页面中的 useEffect hook中派发一个getAction在getAction函数中会执行发送网络请求的代码拿到响应数据 然后执行changeAction函数 在changeAction函数中会返回一个对象 {type: changeXXX,data: 发送网络请求得到的数据 }然后redux内部会执行reducers函数更新redux的state对象中存储的数据 在需要使用数据的页面中通过redux提供的useSelector hook 拿到redux中保存的数据供页面展示使用
http://www.pierceye.com/news/41398/

相关文章:

  • 美团网站怎么做交投建设集团网站
  • 贵阳市做网站电话最好的电商平台
  • 国内产品网站建设有没有外国人做发明的网站
  • 网站开发与设计中学生贵州企业网站建设价格
  • 舟山网站建设有限公司交互效果好的移动端网站
  • 建设网站需要考虑什么怎么查找网站建设
  • 如何查看网站的死链接网站建设需要准备什么软件
  • 石家网站建设公司排名如何评判网站建设岗位
  • 个人网站 怎么设计网站技术培训学校
  • 定西兰州网站建设中国沙漠建设 志愿者 兵团官方网站
  • 有几个网站打不开自己做游戏资讯网站
  • 优惠券网站建设制作网站备案提示
  • 中国工信备案查询网站flash网站的优势
  • 国外的外贸网站自己可以做电子商务网站
  • 怎么用dw制作网站软件工程有多难学
  • 辽宁市场网站建设销售义乌网站开发
  • 南宁做网站公司品牌云尚网络平面设计创意构图
  • 做海外视频的网站有哪些长沙网站免费建站
  • 做商城网站价格做美食下载什么网站
  • 自己怎么建个免费网站商城网站建设的优点
  • 广东省建站公司联兴建设官方网站
  • 网站优化seo培长沙小程序app开发
  • 盐城市网站建设外贸数据平台有哪些
  • php 开发手机网站建设营销型wordpress模板下载
  • 东莞网站建设排名公司wordpress ping
  • 专门做折扣的网站产品推广营销方案
  • 做做网站入口手机网站程序下载
  • 东莞php网站建设价格filetype:pdf wordpress
  • 南昌网站建设的流程php制作网页
  • 泰州做网站 泰公网络科技公司软件开发外包公司赚钱不