1. 安裝react腳手架
npx create-react-app react-basic
2.刪除干擾的檔案
react以JSX模版。jsx:JavaScript XML 縮寫
3.開始學習jsx
const str="變數" const color={ color:"green" } function fun(){ return str+"fun" } function App() { return ( <div className="App"> {/* 使用變數 */} <p>{str}</p> {/* 使用函式 */} <p>{fun()}</p> {/* 使用物件 */} <p style={{color:'red'}}>red</p> <p style={color}>green</p> </div> ); } export default App;
其他基礎入門
// 使用useState 要放最頂部 import { useState } from 'react'; const str="變數" const color={ color:"green" } const list=[ {id:1,name:"woods"}, {id:2,name:"jack"}, {id:3,name:"tom"}, ] function fun(){ return str+"fun" } function getcolor(color){ if(color=='黃瓜'){ return (<p>綠色水果 <img src="./static/logo.svg"/></p>) }else if(color=='火龍果'){ return <p>紅色水果</p> }else{ return <p>失敗失敗!系統庫不存在此水果</p> } } function changeStr(){ alert("點選了") } function Header(){ return <div> <p>Hander</p> <button onClick={()=>{ }}>點我</button> </div> } function App() { {/* 呼叫useState 新增一個狀態變數*/} // count 是狀態變數 setCount是狀態變數的更新函式 const [count,setCount] = useState(0); const [info,setinfo]=useState({ name:"woods", age:18 }) const handleClick = () => { setCount(count + 1); }; const changeInfoName = (name) => { //檢視更新必須替換。案例:更新物件的某個屬性 setinfo({ ...info, name }); }; return ( <div className="App"> {/* 使用變數 */} <p>{str}</p> {/* 使用函式 */} <p>{fun()}</p> {/* 使用物件 */} <p style={{color:'red'}}>red</p> <p style={color}>green</p> {/* 迴圈 (必須是return結構) 記得也要加key*/} {list.map((item,i)=> <p key={item.id}>{i+1}:{item.id}-{item.name}</p>)} {/* 條件判斷 */} {str==='變數' && <p>前面為語法true</p>} {str==='變數1' ? <p>true</p> : <p>false</p>} {getcolor('黃瓜')} {/* 使用事件繫結 on+事件名 */} <button onClick={changeStr}>點我</button> {/* 元件化 其實就是首字母大寫方函式*/} <Header/> <h1 onClick={handleClick}>{count}</h1> <h1 onClick={()=>changeInfoName('jack')}>{info.name}</h1> </div> ); } export default App;