创建一个react项目

1:命令行输入

sheep-react为项目名

npx create-react-app sheep-react

2:在vs的终端中输入npm start 来启动项目

3:删除src目录中的干扰项

App.test.js、reportWebVitals.js、setupTests.js、logo.svg

image-20230218142913001

React:框架的核心包

ReactDOM:专门做渲染的包

import ‘./index.css’:应用的全局样式文件

import App from ‘./App’:引入根组件

4:去掉index.js中的严格模式节点

<React.StrictMode>

5:删除文件对应的导入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MWdFoCvp-1683198794962)(null)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vjFYgEFW-1683198794808)(null)]

JSX介绍

JSX是JavaScript XML(HTML)的缩写,表示在JS代码中书写HTML结构

作用:在React中创建HTML结构(页面UI结构)

优势

1:采用类似于HTML的语法,降低学习成本,会HTML就会JSX

2:充分利用JS自身的可编程能力创建HTML结构

JSX中使用js表达式

const name='sheep'
<h1>你好,我叫{name}</h1>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QezNUwnP-1683198791916)(null)]

原生js调用

const getAge =() =>{
  return "这是js函数的写法"
}
{getAge()}

image-20230218150952434

三元运算符

const flag = true;
{flag ? '66666':'99999'}

列表渲染

const songs =[
  {id:1,name:'sheep'},
  {id:2,name:'botany'},
  {id:3,name:'sheepbotany'}
]
function App () {
  return(
    <div className='App'>
     <ul>
       {
         songs.map(item => <li>{item.name}</li>)
       }
     </ul>
    </div>
  )
}

如果想渲染指定的列表

songs.map(item => <li key={item.id}>{item.name}</li>)

map重复渲染的是哪个模板,就会return谁

需要注意遍历列表时同样需要一个类型为number/string不可重复的key来提高diff的性能

条件渲染

比如经常使用的loading和加载成功

三元表达式
function App () {
  return(
    <div className='App'>
    {flag ? 'loading...正在加载':'加载完成'}
    {flag ? '内容显示中,请稍后':null}
    </div>
  )
}
逻辑&&运算
{true && <span>逻辑与运算显示内容</span>}

分支逻辑

const getHag=(type)=>{
  if(type ===1){
    return <h1>this is h1</h1>
  }
  if(type ===2){
    return <h2>this is h2</h2>
  }
  if(type ===3){
    return <h3>this is h2</h3>
  }
}

function App () {
  return(
    <div className='App'>
   {getHag(1)}
    </div>
  )
}

类名样式

function App () {
  return(
    <div className='App'>
   <span style={{color:'red',fontSize:'30px'}}>this is span</span>
    </div>
  )
}

或者

const style ={
  color:'red',
  fontSize:'30px'
}

function App () {
  return(
    <div className='App'>
   <span style={style}>this is span</span>
    </div>
  )
}
导入外部css文件
.active{
    color: blue
}

image-20230220191409238

import './active.css';

function App () {
  return(
   <span className='active'>测试类名样式</span>
    </div>
  )
}

动态控制active类名
const activeFlag =true
function App () {
  return(
    <div className='App'>
   <span className={activeFlag?'active':''}>测试类名样式</span>
    </div>
  )
}

JSX注意事项

直接上传(img-C9jDOunj-1683198794916)(null)]

git克隆文件

在cmd中输入

git clone https://gitee.com/react-cp/react-pc-code

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VvKU0j5N-1683198794871)(null)]

yarn启动项目

yarn start
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值