摘要:核心開發(fā)人員大神在開了個(gè),用來征詢社區(qū)對(duì)的建議。而且的工程師并沒有因此止步,他們?cè)谖臋n中又告訴開發(fā)者,不僅僅要把寫到中,也應(yīng)該寫到中。無論怎么使用自定義語(yǔ)法,也不應(yīng)該影響這種好處,即使最終實(shí)現(xiàn)看起來有一些怪異。
React 核心開發(fā)人員 sebmarkbage 大神在 GitHub 開了個(gè) issues,用來征詢社區(qū)對(duì) JSX 2.0 的建議。
到底增加(改動(dòng))了什么呢?
#4 - 不對(duì)屬性和文本中的 HTML 轉(zhuǎn)義標(biāo)識(shí)進(jìn)行轉(zhuǎn)義
#21 - 屬性支持表達(dá)式
#23 - 傳參時(shí)使用對(duì)象簡(jiǎn)寫表示
#25, #51, #64 - 屬性是單一符號(hào)或有小括號(hào)時(shí),大括號(hào)可以省略
而且還包括了:
#39 - 隱式 do 表達(dá)式
#35 - Drop implicit text content and curlies as children.
#66 - 自定義屬性命名空間
用過 React 的開發(fā)者都知道,React 的理念就是 All In Javascript,是徹徹底底的 javascript 中心論。
之前我們都是直接把 javascript 寫在 HTML里面,后來又覺得這樣不利于維護(hù),也不符合編程領(lǐng)域中“低耦合”的理念,重新梳理前端:HTML 是數(shù)據(jù),CSS 是表現(xiàn),javascript 是行為。因此我們都是把 javascript 寫在多帶帶的文件,然后在 HTML 中引用。
但是 facebook 的工程師不僅不讓我們?cè)?HTML 中寫 javascript,反而讓我們?cè)?javascript 總寫 HTML。而且 facebook 的工程師并沒有因此止步,他們?cè)?React 文檔中又告訴開發(fā)者,不僅僅要把 html 寫到 javascript 中,css 也應(yīng)該寫到 javascript 中。
我個(gè)人比較喜歡 all in javascript。至于原因以后再寫文章討論,這個(gè)不是今天的重點(diǎn)。
下面進(jìn)入今天的話題:
JSX 里面不能寫條件語(yǔ)句,只能用 JS 的三目運(yùn)算符,因?yàn)橛腥耍ˊmohsen1)建議,為 JSX 增加類似 ng-if 的功能,或者直接使用Angular 2 的 *if 也行:
Something like Angular ng-if would be nice to have in JSX. Making rendering of an element conditional is not easy in JSX. Maybe adopt Angular 2 *if
截至我寫此文時(shí),這個(gè)建議收到了 32 個(gè)贊同 和 324 個(gè)反對(duì)。(我也點(diǎn)了反對(duì))
而對(duì)于此問題,@lacker 也提到了另一種解決方案,增加 if 標(biāo)簽,例如:
This part only gets shown if myCondition is true
這種提議也不樂觀,28 贊同,296 反對(duì)。(我也點(diǎn)了反對(duì))
隨后,@kevinsimper 回答了他們的問題,解決問題的方式不是 JSX 的標(biāo)簽,而是使用 javascript 的短路邏輯運(yùn)算符,再一次體現(xiàn)了 React 的 JS 中心論:
{ somethingTrue &&Will only show if somethingTrue is true}
@bjrmatos 的回復(fù)博得了眾人的喝彩:
@mohsen1 "It"s just JavaScript, not a template language" -> no need to replicate JS functionalities with custom syntax. That is the main benefit of JSX IMO, seriously is so easy to do this with js even if it looks "weird" (for me it is not weird, it is just the syntax of the language)
簡(jiǎn)單翻譯過來就是:JSX 只是 javascript 語(yǔ)法的擴(kuò)展,而不是一種模板語(yǔ)言。無論怎么使用JSX 自定義語(yǔ)法,也不應(yīng)該影響這種好處,即使最終實(shí)現(xiàn)看起來有一些怪異。(原文中提到的 IMO 是不是就是 In My Opinion 的意思?)
之后的討論依然激烈并精彩,終于 @nkkollaw 回復(fù)到:
Don"t fuck it up like Google did with Angular 2, keep the thing compatible with older versions...
不要他媽的像 Google 升級(jí) Angular 2 一樣啊,能不能保持舊版本的兼容啊
@mstijak 在評(píng)論中又提出另一個(gè)屬性綁定寫法:
我的天哪!,好不容易 JSX 不像 Angular 了,突然又變成了 vue。
后面的討論漸漸趨于平和,此時(shí) @xpagesbeast 說到
JavaServer Faces (JSF) Expression language has stood the test of time, JSX is a very similar new kid on the block
我去?。∧銈冇懻?Angular,討論 Vue,討論 jQuery 也就算了,這個(gè) JSF 是什么鬼?!
原文太精彩了,感興趣的可以去 github 上圍觀 JSX 2.0 · Issue #65 · facebook/jsx
歡迎關(guān)注我的公眾號(hào),關(guān)注前端文章:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/86650.html
摘要:為位的安裝原文在此基督尼瑪個(gè)耶穌這一切始于一個(gè)簡(jiǎn)單的想法我想裝然后寫個(gè)網(wǎng)站并用這個(gè)機(jī)會(huì)多學(xué)點(diǎn)和的知識(shí)我理所當(dāng)然的選當(dāng)數(shù)據(jù)庫(kù)因?yàn)樵谖壹依锏哪桥_(tái)電腦上裝著之前的一個(gè)項(xiàng)目里用到的服務(wù)我從沒想到因?yàn)檫x擇讓我接下來的幾個(gè)夜晚都因?yàn)樘幚淼膯栴}而過的 Install 64-bit MySQLdb for Python 3 on Windows 7 為64位Windows7的Pyhton3安裝MySQ...
摘要:本文僅用于學(xué)習(xí)和交流目的,不得用于商業(yè)目的。今年,我們依然會(huì)組織。隨著語(yǔ)言的發(fā)展,這種情況將不再適用。本系列主要討論如何獲得這些高度模塊化的應(yīng)用程序。這一系列內(nèi)的后續(xù)圖書會(huì)討論測(cè)試及部署等內(nèi)容。更多精彩,加入圖靈訪談微信 本文僅用于學(xué)習(xí)和交流目的,不得用于商業(yè)目的。非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/art... 訪談...
摘要:中的常見寫法先看下這段代碼。聲明式編程,就是告訴機(jī)器你想要的是什么,讓機(jī)器想出如何去做。最獨(dú)特的特性之一,是其非侵入性的響應(yīng)式系統(tǒng)。的縮寫將遍歷此對(duì)象所有的屬性。這一過程被稱為依賴收集。組件的顯示,數(shù)據(jù)的體現(xiàn)大部分都是由承載,傳遞。 目錄 緣起 Android開發(fā)中的常見寫法 JQuery中的常見寫法 命令式編程 聲明式編程 React中的常見寫法 Vue的常見寫法 你肯定熟悉響應(yīng)...
閱讀 924·2021-11-25 09:43
閱讀 1298·2021-11-17 09:33
閱讀 3014·2019-08-30 15:44
閱讀 3313·2019-08-29 17:16
閱讀 484·2019-08-28 18:20
閱讀 1641·2019-08-26 13:54
閱讀 556·2019-08-26 12:14
閱讀 2176·2019-08-26 12:14