記錄學(xué)習(xí)React中的小tip (一)

最近在學(xué)習(xí)React技術(shù)框架。對于前端比較著名的兩大框架之一,React相比Vue來說是入門相對較困難一些的,這篇針對沒有前端基礎(chǔ)的人可能會有一些些幫助。

準(zhǔn)備工作

直接引入

你可以在現(xiàn)有的項目中直接引入React組件,只需要在HTML頁面中添加三個 script 標(biāo)簽

  <!-- 加載 React。-->
  <!-- 注意: 部署時,將 "development.js" 替換為 "production.min.js"。-->
  <script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
  <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>

  <!-- 加載我們的 React 組件。-->
  <script src="like_button.js"></script>

在自己目錄下創(chuàng)建like_button.js文件,編寫React代碼,在文件底部加入

const domContainer = document.querySelector('#like_button_container');
ReactDOM.render(e(LikeButton), domContainer);

就能在HTML中加載出js文件中定義的組件。

創(chuàng)建新的React項目

首先需要的是自己安裝 npm>=5.6Node >= 8.10
之后直接在終端運(yùn)行以下命令。

npx create-react-app 項目名
cd  項目名
npm start

注意:項目名不要大寫。
這樣一個腳手架就出來了。

JSX原理

React中編寫JSX語法時,其實是在底層做了一層封裝。
例如

<div className= 'my_class' id= 'my_id'>JSX</div>,

以上直接創(chuàng)建了一個div,等效于下面的寫法

React.createElement(
    'div',
    {
      className: 'my_class',
      id: 'my_id'
    },
    'JSX'
),

創(chuàng)建類組件一般有一下幾種方法


/** 
 * 第一種方式 函數(shù)法 
 * 
 * 
const App = (parps)=>{
return <div>{parps.title}</div>
}

const app = App({
  title : '這就是title啊'
})

ReactDOM.render(
  app,
  document.querySelector('#root'),
)
*/



/*
const App = (parps)=>{
  return <div>{parps.title}</div>
}

ReactDOM.render(
  <App title='這也是屬性'/>,
  document.querySelector('#root'),
)


*/

/** 第二種方式 自定義法 */
/*
const app2 = <div>這也是一個組件</div>

ReactDOM.render(
  app2,
  document.querySelector('#root'),
)
*/


/*第三種 創(chuàng)建類組件 */
/*
class App extends React.Component {
  render(){
    return <div>{this.props.title}</div>
  }
}

const app = new App(
  {
    title : '創(chuàng)建類組件'
  }
).render()

ReactDOM.render(
  // <App title='創(chuàng)建類組件'/>,
  app,
  document.querySelector('#root')
)
*/

React中只有一種語法,那就是 {} ,將所有需要執(zhí)行的 js代碼使用 {} 括起來,父傳子組件時,通過 props 來獲取傳遞的屬性和值,組件內(nèi)部自定義的類型將使用 state。

比較好用的依賴包

React開發(fā)中,通常使用一些插件可以幫助我們快速構(gòu)建應(yīng)用,這里簡單介紹幾種。

styled-components

通過直接使用模板語法快速定義一個組件,這種方法非常高效。用法如下:

import styled from 'styled-components';

const Title = styled.h1`
  font-size: 1.5em;
  text-align: center;
  color: palevioletred;
`;

const Wrapper = styled.section`
  padding: 4em;
  background: papayawhip;
`;


<Wrapper>
  <Title>Hello World, this is my first styled component!</Title>
</Wrapper>
prop-types

這是一個類型檢查插件,將你需要的類型語法進(jìn)行檢查。
函數(shù)組件和類組件對類型prop進(jìn)行檢查時,都可以直接寫在函數(shù)體外部

import PropTypes from 'prop-types';

export default function ProptypesCheck(props) {

}

ProptypesCheck.propTypes = {
    desc: PropTypes.string
}

 
export default class MyComponent extends React.Component {
  render() {
    // ... do things with the props
  }
}
 
MyComponent.propTypes = {
  // You can declare that a prop is a specific JS primitive. By default, these
  // are all optional.
  optionalArray: PropTypes.array,
  optionalBool: PropTypes.bool,
  optionalFunc: PropTypes.func,
}

對于類組件,還可以通過static關(guān)鍵詞進(jìn)行修飾,寫入到類組件內(nèi)部

export default class MyComponent extends React.Component {
  static propTypes = {
    optionalArray: PropTypes.array.isRequired,
  }

  static defaultProps = {
    optionalArray : []
  }

  render() {
    // ... do things with the props
  }
}

在學(xué)習(xí)的過程中插件會一直完善下去。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容