react初体验

简介: react初体验

安装react的环境


npm install -g create-react-app
复制代码


最后利用脚手架建立项目demo01


create-react-app demo01
复制代码


(关于create-react-app很慢的问题)由于某原因,在拉取各种资源时,往往会巨慢

解决方案是换源,虽然平常使用cnpm来代替npm,但也只是使用新的指令而已,而在寻求create-react-app的相关配置希望修改registry时失败了,最后发现create-react-app指令默认调用npm,于是直接把npm的register给永久设置过来就好了,这样使用cnpm或者npm就没差别了。


npm config set registry https://registry.npm.taobao.org
-- 配置后可通过下面方式来验证是否成功
npm config get registry
-- 或npm info express
复制代码


网络异常,图片无法展示
|


设置成功后,再执行create-react-app my-app,就会有惊喜。

\


react的优缺点:


优点:

1、JSX写在javascript里,执行更快,编译为javascript代码时进行优化

2、类型更安全,编译过程如果出错就不能编译,及时发现错误

3、JSX编写模板更加简单快速(不要跟vue比)

\


注意:

1、JSX必须要有根节点

2、正常的普通HTML元素要小写,如果是大写,默认认为是组件

\


JSX表达式

1、由HTML元素构成

2、中间如果需要插入变量用{},且不用写""或者''

3、{}中间可以使用表达式

4、{}中间表达式中可以使用JSX对象

5、属性和html内容一样都是用{}来插入内容

\

JSX的class是className, 而不是直接class(当然,直接class也不会出错)


import React from 'react'
import ReactDOM from 'react-dom'
const classStr = "regBg"
const element = (
    <div>
        <h1 className={"abc " + classStr}>hello world</h1>
    </div>
)
ReactDOM.render(element, document.getElementById('root'))
复制代码


结果:


网络异常,图片无法展示
|


如果classname是数组形式 =>

如:


import React from 'react'
import ReactDOM from 'react-dom'
const classStr = ["regBg", "red"]
const element = (
    <div>
        <h1 className={classStr}>hello world</h1>
    </div>
)
ReactDOM.render(element, document.getElementById('root'))
复制代码


则会报错, {}内可写数组,可无法识别

结果:


网络异常,图片无法展示
|


如果数组的拆分再合并,则可以 如 =>


import React from 'react'
import ReactDOM from 'react-dom'
const classStr = ["regBg", "red"].join(' ')
const element = (
    <div>
        <h1 className={classStr}>hello world</h1>
    </div>
)
ReactDOM.render(element, document.getElementById('root'))
复制代码


结果:


网络异常,图片无法展示
|


JSX的style

如果在JSX里面写style,是没有-的,并且第二个字母需要大写(borderBottom: 1px solid #ddd;)


import React from 'react'
import ReactDOM from 'react-dom'
const exampleStyle = {
    background: "skyblue",
    borderBottom: "1px solid #red"
}
const element = (
    <div>
        <h1 style={exampleStyle}>hello world</h1>
    </div>
)
ReactDOM.render(element, document.getElementById('root'))
复制代码


1、class、style中,不可以存在多个class或者style属性


<div class='abc' class={active}></div>   // 错误的表示
复制代码


2、style样式中,如果存在多个单词的属性组合, 第二个单词开始, 首字母大写, 也可以用引号''写起来


const exampleStyle = {
  backgroundColor: "skyblue",
  borderBottom: "4px solid red",
  'background-image': "url(https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png)"
}
复制代码


3、注释

必须要括号的表达式内书写,否则报错 => {/* 代码 */}

相关文章
|
JavaScript 前端开发 算法
React 初体验
React 初体验
168 0
|
26天前
|
前端开发 JavaScript 开发者
深入理解React Hooks:提升前端开发效率的关键
【10月更文挑战第5天】深入理解React Hooks:提升前端开发效率的关键
|
21天前
|
前端开发
深入解析React Hooks:构建高效且可维护的前端应用
本文将带你走进React Hooks的世界,探索这一革新特性如何改变我们构建React组件的方式。通过分析Hooks的核心概念、使用方法和最佳实践,文章旨在帮助你充分利用Hooks来提高开发效率,编写更简洁、更可维护的前端代码。我们将通过实际代码示例,深入了解useState、useEffect等常用Hooks的内部工作原理,并探讨如何自定义Hooks以复用逻辑。
|
26天前
|
前端开发 JavaScript API
探索React Hooks:前端开发的革命性工具
【10月更文挑战第5天】探索React Hooks:前端开发的革命性工具
|
20天前
|
前端开发 数据管理 编译器
引领前端未来:React 19的重大更新与实战指南🚀
React 19 即将发布,带来一系列革命性的新功能,旨在简化开发过程并显著提升性能。本文介绍了 React 19 的核心功能,如自动优化重新渲染的 React 编译器、加速初始加载的服务器组件、简化表单处理的 Actions、无缝集成的 Web 组件,以及文档元数据的直接管理。这些新功能通过自动化、优化和增强用户体验,帮助开发者构建更高效的 Web 应用程序。
62 1
引领前端未来:React 19的重大更新与实战指南🚀
|
4天前
|
前端开发 JavaScript Android开发
前端框架趋势:React Native在跨平台开发中的优势与挑战
【10月更文挑战第27天】React Native 是跨平台开发领域的佼佼者,凭借其独特的跨平台能力和高效的开发体验,成为许多开发者的首选。本文探讨了 React Native 的优势与挑战,包括跨平台开发能力、原生组件渲染、性能优化及调试复杂性等问题,并通过代码示例展示了其实际应用。
15 1
|
6天前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】React与Vue:前端框架的巅峰对决与选择策略
|
6天前
|
前端开发 JavaScript 开发者
“揭秘React Hooks的神秘面纱:如何掌握这些改变游戏规则的超能力以打造无敌前端应用”
【10月更文挑战第25天】React Hooks 自 2018 年推出以来,已成为 React 功能组件的重要组成部分。本文全面解析了 React Hooks 的核心概念,包括 `useState` 和 `useEffect` 的使用方法,并提供了最佳实践,如避免过度使用 Hooks、保持 Hooks 调用顺序一致、使用 `useReducer` 管理复杂状态逻辑、自定义 Hooks 封装复用逻辑等,帮助开发者更高效地使用 Hooks,构建健壮且易于维护的 React 应用。
18 2
|
6天前
|
前端开发 JavaScript 数据管理
React与Vue:两大前端框架的较量与选择策略
【10月更文挑战第23天】React与Vue:两大前端框架的较量与选择策略
|
11天前
|
缓存 前端开发 JavaScript
前端serverless探索之组件单独部署时,利用rxjs实现业务状态与vue-react-angular等框架的响应式状态映射
本文深入探讨了如何将RxJS与Vue、React、Angular三大前端框架进行集成,通过抽象出辅助方法`useRx`和`pushPipe`,实现跨框架的状态管理。具体介绍了各框架的响应式机制,展示了如何将RxJS的Observable对象转化为框架的响应式数据,并通过示例代码演示了使用方法。此外,还讨论了全局状态源与WebComponent的部署优化,以及一些实践中的改进点。这些方法不仅简化了异步编程,还提升了代码的可读性和可维护性。