步步为营--深入研究react技术栈 系列一 (jsx、组件、数据流)

相关技术博客:

1、步步为营–深入研究react技术栈 系列一 (jsx、组件、数据流)
2、步步为营–深入研究react技术栈 系列二 (事件、组件性能优化)
更多系列文章持续更新中…
在这里插入图片描述

一、React简介

React 是一个用于构建用户界面的 JavaScript 库。把用户界面抽象成一个个的组件,通过引入jsx语法,复用组件更容易,同时保证组件结构清晰。

React 特点

  1. 专注于视图层
    React不是完成的MVC/MVVM框架,很多人认为 React 是 MVC 中的 V(视图)

  2. Vitual DOM
    React把真实的DOM树转换成js对象树,也就是Vitual DOM,通过对DOM的模拟,最大限度地减少与DOM的交互,因此更加高效。
    在这里插入图片描述
    每次数据更新后,重新计算Vitual DOM,并和上一次生成的Vitual DOM做对比,对发生变化的部分批量更新。
    React也提供了直观的shouldComponentUpdate生命周期回调,来减少数据变化后不必要的Vitual DOM对比过程。

  3. 函数编程
    React采用声明范式,可以轻松描述应用。充分利用函数式方法减少冗余代码,此外,本身就是简单函数,易于测试。函数式编程才是React精髓。

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

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

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

二、JSX语法

React 使用 JSX 来替代常规的 JavaScript。
JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。
我们不需要一定使用 JSX,但它有以下优点:

  • JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。
  • 它是类型安全的,在编译过程中就能发现错误。
  • 使用 JSX 编写模板更加简单快速。

使用JSX

  1. XML语法
    JSX是类XML语法的ECMAScript扩展,使用XML好处是标签可以任意嵌套,可以像写HTML一样清晰的看到DOM树状结构及其属性。
const list = () => {
   
	<div>
		<Title>这是标题</Title>
		<ul>
			<li>列表item</li>
			<li>列表item</li>
			<li>列表item</li>
		</ul>
	</div>
}

上面构造了一个list组件,注意事项:

  • 定义标签时,只允许被一个标签包裹,例如:
const list = () => {
   
  	<Title>这是标题</Title>
  	<ul>
  		<li>列表item</li>
  		<li>列表item</li>
  		<li>列表item</li>
  	</ul>
}

这样就会报错了,原因是没有最外层包裹,无法转译成功。

  • 标签一定要闭合
    当然,JSX报错机制很强大,如果有拼写错误会直接打印出来。
  1. 元素类型
    在构建页面中有两种元素:DOM元素和组件元素,在JSX中会有对应,对应规则是标签的首字母是否是小写字母,小写首字母对应DOM元素,大写首字母对应组件元素。

  2. 注释
    注释需要写在花括号中,实例如下:

const list = () => {
   
	<div>
		<Title>这是标题</Title>
		{
   /*注释...*/}
		<ul>
			<li>列表item</li>
			<li>列表item</li>
			
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值