React准备
React 準備
初始化項目
安裝create-react-app
打開終端執行: npm i create-react-app -g執行yarn start
在vscode中添加chrome調試工具
寫配置文件(launch.json)
eg:
{"type": "chrome","request": "launch","name": "Chrome","url": "http://localhost:3000","webRoot": "${workspaceRoot}/src","userDataDir": "${workspaceRoot}/.vscode/chrome","sourceMapPathOverrides": {"webpack:///src/*": "${webRoot}/*"} }在調試窗口點擊,開始調試.(需要先在終端執行yarn start)
知識儲備
導入其他組件/對象/方法import與暴露組件/對象/方法export
常見用法:
從MyText.js中暴露一個組件
```js
import React, { Component } from 'react'export default class MyText extends Component {
}
```- 在MyText.js同級目錄下的一個文件中導入該組件
js //說明: //路徑: './'表示同級目錄下的文件 //省略后綴: 后綴為.js的可以省略不寫 import MyText from './MyText' 從util.js工具方法中暴露一個對象
```js
//形式1
export function func1() {}
export function func2() {
}
//形式2 效果等同于 形式1
function func1() {
}
function func2() {
}
export default {
func1,
func2
}
```從util.js中導入對象或指定方法
```js//導入整個對象
import util from './../util'util.func1();
util.func2();//導入指定方法
func1();
import {func1} from './../util'
```
箭頭函數(參數) => {函數體}
幾個特性:Promise
主要用于美化異步操作代碼, 使其能夠有同步代碼的閱讀體驗, 避免出現地獄回調.
有三種狀態:
1. padding, 等待結果 2. reject, 拒絕/錯誤 3. resolve, 成功eg:
```js
let func1 = () => {
let p = new Promise((resolve, reject) => {
setTimeout(() => {
if (true) {
resolve('success');
} else {
reject();
}
}, 500);
});
return p;
};
let func2 = () => {
let p = new Promise((resolve, reject) => {
setTimeout(() => {
if (false) {
resolve();
} else {
reject('error');
}
}, 500);
});
return p;
};
func
.then((data) => {
})
.then(() => {
}, (errorData) => {
console.log(errorData);
})
.catch((errMsg) => {
});
```內部使用插值表達式, (關于表達式和語句的區別)
eg:
function greeting(text) {return <h1>{ text }</h1> }//單括號內部使用js表達式,例如: /* { number + 1 } { ok ? 'YES' : 'NO' } { message.split('').reverse().join('') } */特殊的屬性寫法
eg:
注意
在JavaScript語句中直接套用html標簽或者自定義組件等同于使用React.createElement()方法, 當然這需要使用babel對其進行編譯.
React element是一個簡單的對象(原文: a plain Object), 由React.createElement()方法得到, 并且所有的React element構成React DOM.
eg:js const element = React.createElement( 'h1', {className: 'greeting'}, 'Hello, world!' );
使用ReactDOM.render()方法可以在DOM中注入React DOM.
純React的項目一般來說只需要一個root DOM.而在一個已有的項目中, 你可以提供多個dom節點, 作為注入React DOM的入口.
擴展
create-react-app默認支持的方法有:
"..."對象展開符
eg:
let obj1 = {name: 'zgatry',address: '杭州',age: 18 }; let obj2 = {...obj1,age: 23 }; console.log(obj2); /* {name: 'zgatry',address: '杭州',age: 23 } */Object.assign()方法
轉載于:https://www.cnblogs.com/foxNike/p/7161595.html
總結
- 上一篇: Tornado web 框架
- 下一篇: android 自己定义水平和圆形pro