初识 react 一分钟上手

简介: 单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。

20210205152305624.png


React 特点


  • 1.声明式设计 −React采用声明范式,可以轻松描述应用。


  • 2.高效 −React通过对DOM的模拟,最大限度地减少与DOM的交互。


  • 3.灵活 −React可以与已知的库或框架很好地配合。


  • 4.JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。


  • 5.组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。


  • 6.单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。


  • 7.react 的核心库就3000多行的代码,非常的轻量级。


20210205152712322.png


使用方式


src 引入的方式


直接在页面上使用React,引用下面的JS


<!-- react 的核心库,不依赖任何的宿主环境  -->
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<!-- react 浏览器的的库,直接与react相关 -->
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<!-- 如果使用jsx 的话,需要使用babel 来进行转移 -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>


为啥需要使用 crossorigin, src 本身是支持跨域的,但是如果不使用crossorigin 报错的提示会比较糟糕,不能正确定位到报错的位置,可以理解成代码地图。


使用原生开发方式


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>react 初探</title>
</head>
<body>
  <div id="root">
  </div>
</body>
<!-- react 的核心库,不依赖任何的宿主环境  -->
<!-- 为啥需要使用 crossorigin, src 本身是支持跨域的,但是如果不适用crossorigin 报错的提示会比较糟糕 -->
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<!-- react 浏览器的的库,直接与react相关 -->
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script>
 let h1Dom = React.createElement('h1',{
    title: '这是h1元素'
  },'h1 元素', React.createElement('span',{}, 'span 元素'))
  ReactDOM.render(h1Dom, document.getElementById('root'));
</script>
</html>

20210205153638478.png


上面的原生我们发现,这样挂载的方式非常繁琐,而且一大堆的不方便,react 给我们提供了一套比较好的语法, jsx


React.createElement


创建一个React元素,称作虚拟DOM,本质上是一个对象


1.参数1:元素类型,如果是字符串,一个普通的HTML元素

2.参数2:元素的属性,一个对象

3.后续参数:元素的子节点


使用jsx 进行开发


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>react 初探</title>
</head>
<body>
  <div id="root">
  </div>
</body>
<!-- react 的核心库,不依赖任何的宿主环境  -->
<!-- 为啥需要使用 crossorigin, src 本身是支持跨域的,但是如果不适用crossorigin 报错的提示会比较糟糕 -->
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<!-- react 浏览器的的库,直接与react相关 -->
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<!-- 引入babel 进行转译 -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<!--  这里的type 需要使用为text/babel, 告诉浏览器,这里的代码先不加载,交给babel转译后在加载 -->
<script type="text/babel">
  //  let h1Dom = React.createElement('h1',{
  //     title: '这是h1元素'
  //   },'h1 元素', React.createElement('span',{}, 'span 元素'))
  // 使用jsx
  let h1Dom =
    <h1 title='这是h1元素'>h1 元素
      <span>span 元素</span>
    </h1>
  ReactDOM.render(h1Dom, document.getElementById('root'));
</script>
</html>

2021020515572137.png



相比之下,jsx 比原生的react 自己创建虚拟节点的语法方便的多,和我们书写html 一样,但是要注意的是,jsx 就是一种语法,创建的dom 也是react 虚拟dom哦

相关文章
|
缓存 前端开发 API
React + MobX 快速上手2
React + MobX 快速上手
|
1月前
|
前端开发 JavaScript API
React开发需要了解的10个库
本文首发于微信公众号“前端徐徐”,介绍了React及其常用库。React是由Meta开发的JavaScript库,用于构建动态用户界面,广泛应用于Facebook、Instagram等知名网站。文章详细讲解了Axios、Formik、React Helmet、React-Redux、React Router DOM、Dotenv、ESLint、Storybook、Framer Motion和React Bootstrap等库的使用方法和应用场景,帮助开发者提升开发效率和代码质量。
114 4
React开发需要了解的10个库
|
1月前
|
前端开发 JavaScript CDN
React 教程
10月更文挑战第6天
45 3
|
前端开发 JavaScript 编译器
对比 React,用10个例子快速上手 Svelte
文章用十个例子比较了 React 和 Svelte 两个框架,包括属性传递、状态管理、条件渲染、异步渲染等。通过阅读这篇文章,你可以了解 Svelte 的基本用法和渲染原理。
253 0
对比 React,用10个例子快速上手 Svelte
|
11月前
|
前端开发
react快速上手
react快速上手
47 0
react快速上手
|
存储 前端开发
React + MobX 快速上手1
React + MobX 快速上手
|
前端开发 JavaScript vr&ar
【React 入门系列 01】React 入门 & 环境搭建
React是一个用于构建用户界面的JavaScript库。React是基于声明式、组件化开发方式。什么是声明式?通过使用JavaScript代码来描述UI(HTML页面)展示是什么样的,就和写HTML本质上是一样的。由React来负责UI的渲染,并在数据变化时更新UI。 React基于组件化方式进行开发。把构建页面的一部内容进行封装,在相似甚至相同的场景下进行复用,通过这样的方式进行代码的复用以及页面的构建。 React支持多端开发的场景。使用React可以开发Web端,基于React-Native可以实现移动端场景开发。使用React(React 360)开发VR应用。
|
资源调度 JavaScript 前端开发
React系列教程(4)React Redux快速入门(下)
React系列教程(4)React Redux快速入门(下)
80 0
|
存储 JSON 前端开发
React系列教程(2)React哲学
React系列教程(2)React哲学
92 0
|
存储 JavaScript 前端开发
React系列教程(4)React Redux快速入门(上)
React系列教程(4)React Redux快速入门
131 0