react為什麼沒有像vue和angular一樣提供「指令」這個功能?

時間 2021-05-31 02:03:03

1樓:Refector

其實也是可以提供的,vue和angular是在編譯期處理的,但是react可以在執行時處理,類似AST解析執行,可以參考這篇文章:基於react實現高度簡潔的表單方

2樓:文人可惡

react 是授人以漁,怎麼釣是你的事,我不管;vue的話是授人以魚,我怎麼釣的你別管,直接拿來用就好了。

久而久之,,,

3樓:

這也是react的特點:靈活。react更接近原生,整體上來看react只為你做了兩件大事,簡化了元素的建立方式讓createElement看起來更簡潔直觀(虛擬dom),以及封裝了虛擬dom上狀態管理的方法。

剩下的就是你想怎麼寫就怎麼寫

4樓:yeatszhang

就像模板語言遲遲沒有統一一樣,模板和邏輯各有各自強勢的地方,該用模板的地方強行使用jsx很蠢,動態性很強該用jsx描述性的時候強行上模板也不合適。 個人覺得其實都是很好的模式~~ 寫元件jsx很好,寫傳統頁面模板很好。 所以感覺vue兩種都支援的策略挺好的~

題外話,個人更喜歡react的簡單、靈活純粹,但是工程上一些場景我還是會看情況用vue或者angular

5樓:章成輝

因為指令的作用是讓標籤基本一定邏輯,如 if啊for什麼的,而react的標籤已經寫到邏輯(js)裡去了,還要指令幹嘛?

6樓:行甫

因為react不是會告訴你要怎麼做,只能怎麼做,他只是提供一條路,開什麼車自己決定。

雖然Vue寫起來很快,但真的繞起來的時候,又很繞。本人對Vue的設計模式一直適應不了。與其說Vue提供了很多便利,不如說那個模式下,限死了其他的途徑。

Vue很多實現都是妥協的產物,有著各種奇怪的封裝,看起來很方便,寫起來膈應感很強。

7樓:Tianfan

可以有,但是沒必要。

jsx 只需要一分鐘學會,那就是單大括號插值,學會標籤巢狀,over。

如果加了,就會用兩分鐘甚至更多時間學。甚至有人不願意學。

要的就是這種效果。一切皆 js。

能用現有 jsx 做到的,絕不新增乙個語法,編譯來實現,無論實現是搓還是不搓,打死不加。(ps :ref 其實就是模板裡面的。)

8樓:方應杭

React 的哲學是:如無必要,勿增實體。

Vue 的哲學是:什麼好用,給你什麼。

Vue 會自動幫你繫結 this,React 不會,因為 JS 能做;

Vue 會自動幫你合併 class 和 style,React 不會,因為 JS 能做;

Vue 會給你的 data 建立 getter/setter,React 不會,因為 JS 能做;

Vue 會給你提供 v-if / v-for / v-show,React 不會,因為 JS 能做;

Vue 會給你提供 computed / watch / methods,React 不會,因為 JS 能做。

那麼 React 到底提供了什麼?

只提供了一條讓你用原生 JS 解決所有 UI 問題的途徑。

很多新人給我的反饋是:

Vue 用久了,好像不會寫高階的 JS 了,只會一些簡單的,居然就能完成工作。

而 React 用久了,就發現 JS 的語法特性真多啊,學都學不過來。

9樓:於冬

為什麼需要指令?react是個很友好的ui庫,它沒有把框架這麼大的概念強加給使用者,它只提供規則和少量的api.隨你怎麼發揮。

vue因為使用模板才需要指令那個東西。不需要學習那些該死的指令,才是我喜歡react的原因

10樓:

directive最早是在angular中看見,可以用來做自定義組建或者是自定義屬性。但是巢狀還是蠻麻煩的(如tabpane和tabcontrol)我理解成這是ng提出的第一代component,後輩react的核心就是萬物皆component。所以不存在react再去實現directive這種事情。

(ng在1.6也支援component了。)

11樓:鄧凡業

Vue指令主要在模版內使用,最終還是要在JS裡面去控制,而React本身沒有模版的概念,直接在JS裡就可以處理你要的邏輯了

12樓:joker

因為 react 本質還是偏向底層的庫(官方都說明是 lib 了)。指令是偏向業務的功能。

簡單業務的話還是有指令好,jsx 只會更囉嗦。複雜的情況下,jsx 就可以靈活應對了。

因此要選就選兩種都支援的,"我全都要.jpg"。

13樓:

架構設計上有一條非常重要的原則:如非必要,勿增實體。

但這個原則會讓那些懶得思考的開發者不爽。用react,最好就是像其他程式工種一樣去思考。

14樓:焦揚

因為沒有必要。

angular有指令的原因是因為它需要描述view模版和資料之間的繫結關係,也就是說angular是個本質mvvm框架,view和model之間是分離的,所以才需要指令去相互關聯。

但是react不同,react其實是不存在模版和view這種東西,jsx實際上是js的語法糖而已。所以在react中你其實是在component裡面描述你的整個介面,所有的東西都是js,也就不需要用directive去關聯了。

vue則是兩方都支援。

15樓:風吹老了好少年

指令本質上是別人封裝好給你的。react把這些東西交給你自己用js去完成。更靈活一些。

看你自己怎麼想吧,要是想開箱即用就還是vue。追求靈活一切掌控在自己手中就react。兩個框架不是乙個風格。

react中有沒有辦法像vue一樣註冊全域性元件呢?在入口只需註冊一次然後在其他元件無需註冊即可使用呢?

HylaruCoder react 沒有註冊元件這個概念吧?要用直接import那個class或者function元件就行了。這樣元件可以方便的查詢引用重新命名啥的。 往windows上放,你都要全域性了還有什麼好糾結的,該髒就髒寫個babel外掛程式幫你自動加import語句,我猜社群裡有類似的外...

Vue 和 React 的優點分別是什麼?

深藍 我想很多人和我一樣,先學會了 Vue 或者 React,然後再去學另外乙個,但是突然發現兩者的實現在思維上還是有很大差異的,然後就開始嫌棄另外乙個語言,覺得哪哪不如我先學的這個.我在學習了 Vue 之後再去學習 React 的.發現如果能找到兩者的相似和差異之處,理解起來會更快 React對比...

為什麼react比vue更適合大型應用?

前端361 1,vue的模板寫法在元件資料較多時,資料和模板強相關,模板不能動態抽離為函式,而在react中,jsx可以很方便的抽離為函式,雖然vue也可以在render中寫jsx,但在模板中無法使用this 2,高階元件的寫法上,react可以更好的使用,維護,vue中高階元件大部分情況下時使用m...