日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

React准备

發布時間:2024/4/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 React准备 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

React 準備

初始化項目

  • 安裝create-react-app

    打開終端執行: npm i create-react-app -g
  • 執行create-react-app AwesomeProject
  • 執行yarn start

  • 在vscode中添加chrome調試工具

  • 在vscode的擴展中搜索并安裝Debugger for Chrome
  • 在調試窗口(ctrl+shift+d)配置, 選擇"添加配置"
  • 寫配置文件(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)

  • 知識儲備

  • ES6語法
    • 導入其他組件/對象/方法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();

      //導入指定方法
      import {func1} from './../util'

      func1();
      ```
    • 箭頭函數(參數) => {函數體}

      幾個特性:
    • 無this
    • 無arguments
    • 不可作為構造函數
    • 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) => {

      //500ms后執行 console.log(data); return func2();

      })
      .then(() => {

      //未執行 console.log('1');

      }, (errorData) => {
      console.log(errorData);
      })
      .catch((errMsg) => {

      //統一處理error console.error(errMsg);

      });

      ```
  • JSX語法
  • 內部使用插值表達式, (關于表達式和語句的區別)

    eg:

    function greeting(text) {return <h1>{ text }</h1> }//單括號內部使用js表達式,例如: /* { number + 1 } { ok ? 'YES' : 'NO' } { message.split('').reverse().join('') } */
  • 它本身也是表達式的一種, 和JavaScript語句一起使用即可.
  • 特殊的屬性寫法

    eg:

  • class => className
  • const el1 = (<div className="yourName"><h1>hello</h1><b>world</b></div> );
  • src="example.jpg" => src={yourPath}, typeof yourPath is String
  • const yourPath = 'example.jpg'; const el2 = {<img src={yourPath} /> };//or const el3 = {<img src="example.jpg" /> //傳統html中屬性的寫法 };//error const el4 = {<img src="yourPath" /> //路徑為yourPath, 而不是example.jpg };
  • 注意

    在JavaScript語句中直接套用html標簽或者自定義組件等同于使用React.createElement()方法, 當然這需要使用babel對其進行編譯.

  • DOM elementReact element
  • DOM element為傳統的html標簽.
  • 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

    總結

    以上是生活随笔為你收集整理的React准备的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。