前端知识库Reactjs基础系列一

简介: 近几年前端可以说是飞速发展,从虚拟dom到flux单项数据流,这些对于前端可以说是跨时代到发展,对于前端开发者来说不仅仅是挑战也是大到机遇,如果你想成为一名顶尖到前端开发工程师,那我认为掌握这些概念和由此孕育而出到框架是必不可少的。anglurjs ,vuejs ,reactjs作为当前前端三大主流框架,也许我们工作中只会用到一种,但掌握他们,并能运用他们应该我们必备但技能。注:本文只是自己重看reactjs文档的一些总结,主要参考的是reactjs的官方文档。

前言


近几年前端可以说是飞速发展,从虚拟dom到flux单项数据流,这些对于前端可以说是跨时代到发展,对于前端开发者来说不仅仅是挑战也是大到机遇,如果你想成为一名顶尖到前端开发工程师,那我认为掌握这些概念和由此孕育而出到框架是必不可少的。anglurjs ,vuejs ,reactjs作为当前前端三大主流框架,也许我们工作中只会用到一种,但掌握他们,并能运用他们应该我们必备但技能。 注:本文只是自己重看reactjs文档的一些总结,主要参考的是reactjs的官方文档。

reactjs基本技能思维导图

reactjs基本语法

reactjs使用jsx语法有如下特点

  • 标记与逻辑共同存放
  • 通过大括号嵌入表达式
  • jxs可以看作一个表达式
  • 有效防止注入攻击
    详细请点击查看

reactjs元素渲染

  • reactjs只能通过ReactDOM.render()将react元素渲染到dom元素中
  • 条件渲染:通过if 或者条件运算符去创建元素来表现当前的状态例:
function HelloWorld(props) {
   const isLoggedIn = props.isLoggedIn;
   if (isLoggedIn) {
       return <p>hello world</p>;
      }
    return <p>not login</p>;
   }
  • 列表渲染与key:使用map()函数来渲染数组例:
const numbers = [1, 2, 3, 4, 5];
      const listItems = numbers.map((number) =>
         <li>{number}</li>
      );

组件间的状态

  • 状态:react的整个组件可以看成一个状态机,通过与用户的交互来改变状态,实现ui的更新,及React 里,只需更新组件的 state,然后根据新的 state重新渲染用户 界面 (不要操作 DOM),这也是flux单向数据流思想的一种体现。看个例子
import  React from 'react'
class Clock extends React.Component {
 constructor(props) {
   super(props);
   this.state = {date: new Date()};
 }
 tick() {
 //通过setstate来改变状态
   this.setState({
     date: new Date()
   });
 }
 render() {
 //将状态渲染到ui页面
   return (
     <div>
       <h1>Hello, world!</h1>
       <h2>现在是 {this.state.date.toLocaleTimeString()}.</h2>
       <button onClick={this.tick.bind(this)}>更新时间</button>
     </div>
   );
 }
}

注:reactjs中的状态可以称为自顶向下或单向数据流。任何状态始终由某些特定组件所有,并且从该状态导出的任何数据或 UI 只能影响树中下方的组件。

  • 状态传递: reactjs组件的状态传递主要通过props,props与state的最大不同是props是不可以改变的。另外也可以理解为是自组件用来接受父组件中传递的属性。
class WebSite extends React.Component {
  constructor() {
      super();
      this.state = {
        name: "菜鸟教程",
        site: "https://www.runoob.com"
      }
    }
  render() {
    return (
      <div>
        <Name name={this.state.name} />
        <Link site={this.state.site} />
      </div>
    );
  }
}
class Name extends React.Component {
  render() {
    console.log(this.props)
    return (
      <h1>{this.props.name}</h1>
    );
  }
}
class Link extends React.Component {
  render() {
    return (
      <a href={this.props.site}>
        {this.props.site}
      </a>
    );
  }
}

reactjs生命周期简介

reactjs生命周期可以分为 mount update destroy每一个生命周期对应的api如下所示:

mount:

  1. constructor()
  2. static getDerivedStateFromProps()
  3. render()
  4. componentDidMount()

update:

  • 1.static getDerivedStateFromProps()
  • 2.shouldComponentUpdate()
  • 3.render()
  • 4.getSnapshotBeforeUpdate()
  • 5.componentDidUpdate()

destroy:

  • 1.componentWillUnmount()

事件与表单


React 元素的事件处理和 DOM 元素类似。但是有以下两点注意:

  • React 事件绑定属性的命名采用驼峰式写法,而不是小写。
  • 如果采用 JSX 的语法你需要传入一个函数作为事件处理函数,而不是一个字符串(DOM 元素的写法)

HTML 表单元素与 React 中的其他 DOM元素有所不同,表单中可变的状态保存在state中 并且只能通过setstate来更新

class HelloMessage extends React.Component {
  constructor(props) {
      super(props);
      this.state = {value: 'Hello Runoob!'};
      this.handleChange = this.handleChange.bind(this);
  }
  handleChange(event) {
    this.setState({value: event.target.value});
  }
  render() {
    var value = this.state.value;
    return <div>
            <input type="text" value={value} onChange={this.handleChange} /> 
            <h4>{value}</h4>
           </div>;
  }
}

reactjs生态相关


  • create-react-app:reactjs脚手架用来构建项目的基本架构
  • mobx/redux:状态管理工具
  • react-router:完整的react路由解决方案
  • ant-design:阿里开源的reactjs ui库
  • axios: 基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中

小结


本章主要介绍了reactjs的基本内容,主要参考了reactjs的官方文档。建议初学者完整的把reactjs的官方文档看几遍,注意不是看一遍。如果你能坚持多看几遍,并且在看的过程中写几个demo那你上手项目将非常快。


相关文章
|
前端开发 JavaScript 算法
深入理解前端框架:解析 React 的虚拟 DOM
虚拟 DOM 是 React 前端框架的核心概念之一。本文将深入探讨虚拟 DOM 的原理和应用,帮助读者更好地理解 React 框架的工作机制,并学习如何高效地使用虚拟 DOM 进行前端开发。
279 28
|
前端开发 JavaScript UED
使用React Hooks优化前端应用性能
本文将深入探讨如何使用React Hooks来优化前端应用的性能,重点介绍Hooks在状态管理、副作用处理和组件逻辑复用方面的应用。通过本文的指导,读者将了解到如何利用React Hooks提升前端应用的响应速度和用户体验。
|
开发框架 前端开发 JavaScript
探索前端开发中的跨平台框架React Native
本文将介绍前端开发中一种备受关注的跨平台框架React Native,通过比较原生应用与React Native的优缺点,探讨其在实际项目中的应用以及未来发展趋势。
221 2
|
前端开发 开发者
探索前端框架的新趋势:React Hooks的应用与实践
本文将深入探讨前端开发中的新趋势,重点介绍React Hooks的应用与实践。通过学习和使用React Hooks,开发者可以更高效地构建可维护、可扩展的前端应用程序。本文将详细介绍React Hooks的原理、优势以及如何在实际项目中运用Hooks来提高开发效率并改善代码结构。无论你是刚入门前端开发还是经验丰富的工程师,本文都将对你有所启发。
|
前端开发 JavaScript C++
探索前端框架选择:React vs Vue
在现代Web开发中,前端框架扮演着关键的角色。本文将探讨两个最受欢迎的前端框架之间的比较:React和Vue。我们将分析它们的特点、优缺点以及适用场景,帮助开发者做出明智的选择。
217 0
|
前端开发 JavaScript 算法
|
JavaScript 前端开发 算法
|
前端开发
利用React Hooks优化前端状态管理
本文将深入介绍如何利用React Hooks优化前端状态管理,包括Hooks的概念、使用方法以及与传统状态管理方式的对比分析,帮助前端开发人员更好地理解和应用这一现代化的状态管理方案。
|
前端开发 JavaScript 安全
使用React、TypeScript和Ant Design构建现代化前端应用
使用React、TypeScript和Ant Design构建现代化前端应用
653 0
|
开发框架 前端开发 JavaScript
深入探究React:前端开发的利器
深入探究React:前端开发的利器
285 1

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改