React的初尝试

100 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 14 天,点击查看活动详情

今天我们来学习一下React,之前一直在搞Vue2,Vue3,现在我们来一起入门一下这个风靡全球的大厂宠儿---来自FaceBook团队的React框架。

React的历史

历史上,React源于facebook,他对于超大型的项目的编写上,适应非常好。而且具有着非常非常强大的生态环境。React的设计思路就是响应式编程。

这样有以下几个优势。

  • 状态更新,UI会自动更新
  • 代码组件化,可复用性更强,可以封装,更方便。
  • 状态之间的依赖关系,只需要声明即可。

开始

初始化

我们先初始化一个React应用程序。

我们先使用npm进行一个尝试。

npm install -g create-react-app // 安装 create-react-app 脚手架
create-react-app my-first-app // 创建项目 
cd my-first-app/ 
npm start // 启动

React采用JSX的方式进行编程。JSX 是 Javascript 的语法扩展,JSX = Javascript + XML,就是在 Javascript 里面写 XML,因为 JSX 的这个特性,所以它既具备了 Javascript 的灵活性,同时又兼具 html 的语义化和直观性。不同于VUe,JSX是React的唯一语法糖。

响应式编程

function Component(props) {
    const { url } = props;
    this.text = "点击我";
    // 返回一个UI
    return (<div>
                <SubComponent props={{ color: 'red' }}></SubComponent>
                <img src={ url }></img>
                <button>text</button>
            </div>)
}
<div class='box' id='content'>
  <div class='title'>Hello</div>
  <button>Click</button>
</div>

上面的 DOM 结构等同于下面的结构

{
  tag: 'div',
  attrs: { className: 'box', id: 'content'},
  children: [
    {
      tag: 'div',
      arrts: { className: 'title' },
      children: ['Hello']
    },
    {
      tag: 'button',
      attrs: null,
      children: ['Click']
    }
  ]
}

组件 & props

React 中编写组件有 2 种方式:函数 和 class(类组件)。组件首字母必须大写。

函数组件:

function MyComp(props) {
  return <h1>hello {props.name}</h1>;
}

Virtual DOM

React还有一个Virtual DOM的东西

Virtual DOM是一种用于和真实DOM同步,而在JS内存中维护的一个对象,它具有和DOM类似的树状结构,并和DOM可以建立一一对应的关系