create-react-app   jianshu

yarn add styled-components -D       利用js写css样式  样式会更高效

https://github.com/chochinlu/blog/issues/126

https://blog.csdn.net/weixin_43801564/article/details/86713318     关于全局样式  原方法淘汰替代的语法

-:)》》》》》为样式生成唯一的 class name. 开发者不必再担心 class name 重复,覆盖和拼写错误的问题

yarn add react-transiation-group         安装一个js动画效果的外包辅助工具

https://reactcommunity.org/react-transition-group/css-transition

https://segmentfault.com/a/1190000015487495       js封装的动画库  H5  原生就是H5动画

-:)》》》》》会给子级增添动画属性 ,针对包含的子级添加css样式 

yarn add redux  -D         redux

yarn add react-redux   -D                              安装公共数据 存储对象

Redux  连贯套路

创建stroe----创建reducer ----放入store----reducer(放入action,一个状态)--------connect(给一个状态type)---------reducer(通过action.type  更改state中的数据)

无状态组件

里面没有任何的 状态 所有的数据都是从 props中拿到的,redux中拿到的数据和方法

const   组件 = (props)=》{

  return(

    <BigDiv>

      <i >{props.data}</i>

    </BigDiv>

  )

}

yarn add immutable -D

对数据进行 immutable 管理

import { fromJS } from 'immutable';

---------------------------------------------------------------------------------------------------------------------------------

reducer  设置更新数据的时候

   单个  return state.set('listData',fromJS(action.data))

   多个   return state.merge({       listData:fromJS(action.data),artData:fromJS(action.data)               })

-----------------------------------------------------------------------------------------------------------------------------------

/通过行内传递参数

<img imgUrl="http://123.png"/>

styled    就可以通过  background:url(${(props)=>props.imgUrl});

-----------------------------------------------------------------------------------------------------------------------------------

配合 Purecomponent    使用    :它的作用  一处修改不会页面全部重新渲染   修改哪里 重新渲染哪里

!!!!注意  只有用了 immutable 才可以使用该方法

路由配合单页面内跳转

首页跳转详情页  加id   动态路由配置

动态路由  常用格式

请求完整的流程   分析图

字符串转移为html代码 (编辑器写入一段带HTML格式的存入了数据库,数据库拿出来用这个转为HTML代码)

dangerouslySetInnerHTML={{__HTML:this.props.String}}

判断显示哪一个块,显示登陆  or  注册(代码块)

render(){

  if(true){

    return(<div>登录</div>)

  }else{  

    return(<div>注册</div>)

  }  

}

重定向Redirect

import { Redirect } from 'react-router-dom';

<Redirect to="/" />

Input  ref获取表单的里面的数据

异步优化分页代码(配合withRputer)

异步

shouldComponentUpdate    底层是这个但是很麻烦 ,很繁琐
利用第三方辅助 react-loadable

优化异步 请求分页文件

react-loadable

import React fron 'react';
import Loadable from 'react-loadable';

const LoadableComponent = Loadable({
loader: () => import('./'),
loading(){
    return <div>页面正在加载中 ...</div>
  }
});

export default ()=> <LoadableComponent/>

放在index.js 根目录文件夹下

app.js 路由跳转 到 detail.js 的时候 先进入loadable.js
import Detail from './pages/detail/loadable.js';

然后在 index.js 中映入 loadable 文件 ,引入包裹组件

但是原先的 router 中的 id 就会找不到 ,那么就用到withRouter

解决办法:

withRouter from 'react-router-dom';

包裹在 connect(withRouter(detail))

原代码 来资源 react-loadable

export default class App extends React.Component {
render() {
  return <LoadableComponent/>;
  }
}

项目打包上线  

npm run build 

生成文件夹  build   里面的全部文件给到 后台  XAMPP /htdocs 文件 

build里面的文件全部放入,访问后台服务器  测试服务器为 127.0.0.1   本地服务器

打包空白   pack.json   添加 homepae:'./'

项目前期完整框架搭建------后期就好做多了 (填充内容)

7-1  项目目录搭建,Styled-commponents与React。

https://pan.baidu.com/s/1b7LIIh9l_VbJIjMEM9t_qA

7-2  使用 Styled-commponents完成Header组件布局(1)

https://pan.baidu.com/s/1K45oL0wjqYmbnkPhbUU0DA

7-3  使用 Styled-commponents完成Header组件布局(2)

https://pan.baidu.com/s/1e9kPIdaoqfCVqMv3hkkb8A

7-4  使用iconfont潜入字体图标    https://www.iconfont.cn/

https://pan.baidu.com/s/1PdTkiw6tWGOpli2Q92tDJQ

7-5  搜索框动画效果实现

https://pan.baidu.com/s/11gikpHUejCC0Wtescc9rzw

7-6  使用React-redux 进行应用数据的管理

https://pan.baidu.com/s/1X4ngbC4_2xP45c_tOVowVA

7-7  使用combineReducers 完成对数据的拆分

https://pan.baidu.com/s/1QG0Z6vPnEZFYg2urLhyUVQ

7-8  actionCreators.js    and   actionTypes.js  的封装

https://pan.baidu.com/s/1_PQ3b5ITUH6t45vdypxXSw

7-9  immutable   对存储在 {store}中的数据管理

https://pan.baidu.com/s/1QmbGDNtxCXNNeY-ObA1How

7-10   redux-immutable 对数据的统一管理

https://pan.baidu.com/s/10TIT2-__u0Va5GbY6IaylQ

React 简书的更多相关文章

  1. react 简书开发笔记

    详见文章<React简书开发实战课程笔记>

  2. react简书

    开发项目之前的准备 https://www.chromefor.com/  登录此网站 下载相关crx react插件 不然要FQ 下载 React Developer Tools 谷歌插件下载 Re ...

  3. react简书笔记一 环境, git 和 项目 关联

    1.. 建立git项目  ( 码云, github 都可以 ), 具体步骤: https://www.cnblogs.com/andy-lehhaxm/p/10720717.html 1.1  git ...

  4. 2. react 简书 头部(header) 图标添加

    1. 访问 iconfont 并注册 登陆 2. 进入 iconfont 头部 图标管理->我的项目 3. 点击右边的文件夹 + 号 图标 创建我的项目 输入项目名称即可 4.在 搜索框 搜索 ...

  5. 4 react 简书 引入 redux 的 combineReducers 对 redux 数据进行管理

    1. src 下的 common 下的 header 创建 store 文件夹 下创建 reducer.js # src/common/header/store/reducer.js const st ...

  6. 3 react 简书 添加 头部搜索动态效果

    1. 添加动态效果组件 yarn add react-transition-group 2. 修改 src/common/header/index.js import React, {Componen ...

  7. 2. react 简书 头部 (header) 样式编写

    1. 在 src 下 创建 common 文件下 创建 header 文件夹下 创建 index.js #src/common/header/index.js import React, {Compo ...

  8. 1. react 简书 项目初始化

    1. 创建 react 项目 npx create-react-app my-app 2. src 目录下删除 除了 index.js index.css app.js 的文件 3. 引入 style ...

  9. iOS离屏渲染简书

    更详细地址https://zsisme.gitbooks.io/ios-/content/chapter15/offscreen-rendering.html(包含了核心动画) GPU渲染机制: CP ...

随机推荐

  1. PHP闭包实现函数的自调用实现递归

    根据pathinfo访问对应得controller,如ip:port/home/index/index则会访问home目录下的IndexController的index方法:如果不指定pathinfo ...

  2. settings.gradle与build.gradle有什么区别

    参考回答 settings.gradle文件是gradle项目的总体配置文件,一般会把子项目中通用的一些配置放在这个文件中,有点雷士与maven的parent pom 文件. build.gradle ...

  3. vagrant up 时提示错误 cound not open file

    根据教程:https://laravel-china.org/docs/laravel-development-environment/5.5/development-environment-wind ...

  4. 【怪物】KMP畸形变种——扩展KMP

    问题 参考51nod1304这道题: 很显然我们要求的是S的每个后缀与S的最长公共前缀的长度之和. 暴力 假设我们把next[i]表示为第i个后缀与S的最长公共前缀的长度. 现在我们想了:这个next ...

  5. java方法重写规则 重载

    方法的重写规则 参数列表必须完全与被重写方法的相同: 返回类型必须完全与被重写方法的返回类型相同: 访问权限不能比父类中被重写的方法的访问权限更低.例如:如果父类的一个方法被声明为public,那么在 ...

  6. 使用pip出现 cannot import name "main"

    最近在linux使用pip install时遇到了这个报错 1.jpg ImportError: cannot import name main 遇到这个问题,我的解决办法是:cd 到usr/bin目 ...

  7. sql —— top

    用于规定要返回的记录的数目 原表: 我们如果只想看前三个学生信息的话:

  8. UVALive - 4787 ICPC WF 2010 Tracking Bio-bots【dp】

    UVa 4787 WF题果然不一样,本来想暴力搜索,数据太大了,数组都开不了.看题解也不太懂,记录一下书上的题解,以后再看: 此题是给出N*M的格子,有些地方是墙,不可走.求所有不能只通过向上或者向右 ...

  9. python 列表对象的增减

  10. Python 常量