JSX中ES6備忘
簡介
JSX是超文字標記語言的擴充套件,允許HTML與JavaScript的共存。
ES6中的括號
- {}
花括號中的內容,babel會當做JavaScript來解譯 - []
從ECMAScript 2015開始,物件初始化程式語法還支援計算屬性名稱。這允許您將表示式放在括號中[],該表示式將被計算
並用作屬性名稱。
class Reservation extends React.Component {
constructor(props) {
super(props);
this.state = {
isGoing: true,
numberOfGuests: 2
};
this.handleInputChange = this.handleInputChange.bind(this);
}
handleInputChange(event) {
const target = event.target;
const value = target.type === 'checkbox' ? target.checked : target.value;
const name = target.name;
this.setState({
[name]: value
});
}
render() {
return (
<form>
<label>
Is going:
<input
name="isGoing"
type="checkbox"
checked={this.state.isGoing}
onChange={this.handleInputChange} />
</label>
<br />
<label>
Number of guests:
<input
name="numberOfGuests"
type="number"
value={this.state.numberOfGuests}
onChange={this.handleInputChange} />
</label>
</form>
);
}
}
ReactDOM.render(
<Reservation />,
document.getElementById('root')
);
上面程式碼中setState中用到[name]: value
,暫時理解為用來引用變數。如果只寫name,name就是指為this.state中key為name的變數賦值為value。注意this.setState中的this指的是Reservation元件
ES6中的箭頭函式
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
http://es6.ruanyifeng.com/#docs/function#%E7%AE%AD%E5%A4%B4%E5%87%BD%E6%95%B0
相關文章
- vscode中eslint外掛es6,jsx支援VSCodeEsLintJS
- 備忘錄
- RunLoop備忘OOP
- Vuepress 備忘Vue
- HTTPS備忘HTTP
- 【備忘錄】
- tmux使用備忘UX
- Eigen備忘錄
- Runtime備忘-isa
- Python 備忘錄Python
- RabbitMQ備忘錄MQ
- Docker代理備忘Docker
- React中JSX的理解ReactJS
- MySQL 8:備份&匯入【備忘】MySql
- python編譯備忘Python編譯
- linux 備忘記錄Linux
- Java備忘錄《集合》Java
- word備忘【圖片】
- lldb常用操作備忘LLDB
- 網站備忘錄網站
- 備忘錄模式(Memento)模式
- Java Lambda 使用備忘Java
- ADB常用指令備忘
- Docker部署flink備忘Docker
- iOS開發備忘筆記 (持續更新中)iOS筆記
- 如何在vue中使用jsx與ES6類的寫法VueJS
- react中的jsx語法ReactJS
- Java備忘錄《“==” 和 “equals”》Java
- Dart 學習備忘錄Dart
- Java快取備忘大全Java快取
- Docker Compose 備忘清單Docker
- 19_備忘錄模式模式
- PHP 日常開發備忘PHP
- iOS 效能優化備忘iOS優化
- 課本下載備忘
- ChatGPT Prompting Cheat Sheet備忘ChatGPT
- ubuntu環境配置備忘Ubuntu
- 開發 備忘錄 - 雜