即便如今,咱們仍是要說在HTML中直接使用onclick很不專業,緣由以下:編程
由於函數
打一個比方,React是一個聰明的建築工人,而jQuery是一個比較傻的建築工人,開發者你就是一個建築的設計師,若是是jQuery這個建築工人爲你工做,你不得不事無鉅細地告訴jQuery「如何去作」,要告訴他這面牆要拆掉重建,那面牆上要新開一個窗戶,反之,若是是React這個建築工人爲你工做,你所要作的就是告訴這個工人「我想要什麼樣子」,只要把圖紙遞給React這個工人,他就會替你搞定一切,固然他不會把整個建築拆掉重建,而是很聰明地把此次的圖紙和上次的圖紙作一個對比,發現不一樣之處,而後只去作適當的修改就完成任務了。
顯而易見,React的工做方式把開發者從繁瑣的操做中解放出來,開發者只須要着重「我想要顯示什麼」,而不用操心「怎樣去作」。
這種新的思惟方式,對於一個簡單的例子也要編寫很多代碼,感受像是用高射炮打蚊子,可是對於一個大型的項目,這種方式編寫的代碼會更容易管理,由於整個React應用要作的就是渲染,開發者關注的是渲染成成什麼樣子,而不用關心如何實現增量渲染。
React的理念,歸結爲一個公式,就像下面這樣:
UI=render(data)
讓咱們來看看這個公式表達的含義,用戶看到的界面(UI),應該是一個函數(在這裏叫render)的執行結果,只接受數據(data)做爲參數。這個函數是一個純函數,所謂純函數,指的是沒有任何反作用,輸出徹底依賴於輸入的函數,兩次函數調用若是輸入相同,獲得的結果也絕對相同。如此一來,最終的用戶界面,在render函數肯定的狀況下徹底取決於輸入數據。性能