React基本使用

1.react 概念

React 是一个开源的 JavaScript 库,用于构建 web 应用中的视图层,既是 web 应用的前端用户页面。(一个用于构建用户界面的 javascript 库,与 2012 年由 Facebook 创建,13 年 5 月开源维护)

2.创建 react 项目

指令使用:

#全局安装react脚手架
npm install create-react-app@5.0.1 -g
#创建项目 名称
create-react-app react-basic
#进入项目根目录启动项目
npm start

目录结构分析

# 项目结构分析
├── README.md                     # 项目的说明书
├── package.json                  # npm 包说明文件、记录项目信息
├── package-lock.json             # 跟踪被安装的每个软件包的确切版本
├── public                        # 本地开发服务器提供的静态资源目录
│   ├── favicon.ico               # 网站图标、显示在浏览器的标签栏中
│   ├── index.html                # 项目的 HTML 模板
│   ├── logo192.png               # react logo 图片 (示例代码中用于设置 IOS 移动端网站图标)
│   ├── logo512.png               # react logo 图片
│   ├── manifest.json             # web 应用清单如名称, 作者, 图标和描述 (主要用于将 Web 应用程序安装到设备的主屏幕)
│   └── robots.txt                # 爬虫协议文件
└── src                           # 项目源码目录
    ├── App.css                   # 示例程序中的根组件样式文件
    ├── App.js                    # 示例程序中的根组件文件
    ├── App.test.js               # 示例程序中的根组件测试文件
    ├── index.css                 # 示例程序中的全局样式文件
    ├── index.js                  # 项目的入口文件
    ├── logo.svg                  # 示例程序中根组件中显示的网站图标文件
    ├── reportWebVitals.js        # 测试应用程序的性能
    └── setupTests.js             # 项目的测试文件
3.react 初使用
#创建h1元素
#参数属性-》(标记名称,标记属性,子元素...);
const title = React.createElement(
 "h1",
 {title:"hello",id:1},
 "hello react"
)
document.createElement("h1");
#获取public文件下的index.html中的div盒子id
const root = ReactDOM.createRoot(document.getElementById("root"))
#使用render方法生成template模板
root.render(title);
4.JSX 概述

jsx 概念

jsx 语法是 React 提供另一种创建用户界面的方式,看起来很像 HTML,但他绝不是 HTML,他是一只 JavaScript 语法扩展。facebook 处于性能考虑,解决必须通过 React.createElement 创建元素,创建出了 jsx,在应用构建的过程中 jsx 由 babel(js 编译器)转换成 React.createElement 方法调用

代码样式

const list = (
  <div className="list">
    <h2>Hello React</h2>
    <ul>
      <li>hello</li>
      <li>react</li>
    </ul>
  </div>
);
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(list);
5.JSX 注意事项

(1)JSX 格式美化

当 jsx 中存在多个标记使用小括号()进行包裹,使代码格式美化排列,创建元素时,元素的最外层必须要有一个根标记

const jsx = (
  <div>
    <ul>
      <li></li>
    </ul>
  </div>
);

(2)避免出现无意义标记,可使用幽灵标记<></>(完整语法<React.Fragment></React.Fragment>)

const jsx = (
  <>
    <div></div>
    <p></p>
  </>
);

(3)JSX 中使用单标签必须是闭合状态

<input type="text"/>
<img src="" alt=""/>

(4)在 JSX 中标记属性使用小驼峰命名法 (由多个单词组成,第一个单词首字符小写,其他单词首字符大写)

<input maxLength="100" readOnly autoFocus />

(5)在 JSX 中为元素添加属性时使用 className 代替 class、htmlFor 代替 for (jsx 本质上是 javaScript)

<input type="text" className="todos"/>
<label htmlFor="demo"/>
6.JSX 嵌入表达式

含义:将表达式产生的值渲染到用户界面中。

表达式就是一个能够产生结果的式子,jsx 里面只能放表达式,非表达式不能被嵌入 JSX

插入值({}花括号)包裹插入属性值

//插入文本内容
const name = "张三";
const jsx = <div>{name}</div>;
//插入属性值
const activeName = "active";
const jsx = <input type="text" className={activeName} />;
//计算
const x = 10;
const y = 20;
const jsx = <p>{x * y}</p>;
//渲染函数返回值
function getValue() {
  return "jsx";
}
const jsx = <p>{getValue()}</p>;
//表达式
const status = true;
const jsx = status ? <div>true</div> : <div>false</div>;
//插入对象  内容中不能直接插入对象
const jsx = <p style={{ width: 200 }}>{{ name: "jsx" }}</p>;
//注释
{
  /**/
}
7.条件渲染

(1)使用 if 分支语句进行条件渲染

const Status = fasle;
function getContent() {
  if (Status) {
    return <span>true</span>;
  } else {
    return <span>fasle</span>;
  }
}
const jsx = <div>{getContent()}</div>;

(2)使用三元运算符进行条件渲染

const Status = false;
const jsx = Status:<span>true</span>:<span>false</span>

(3)使用逻辑运算符进行条件渲染

逻辑运算符 &&,全为真时返回真,有一个为假返回假
true&&true
false&&true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值