真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

reactjs和vuejs有哪些區(qū)別

小編給大家分享一下reactjs和vuejs有哪些區(qū)別,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

為永春等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及永春網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站建設(shè)、永春網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

reactjs和vuejs的區(qū)別:1、vue是數(shù)據(jù)雙向綁定,react不是雙向綁定;2、非父子組件實(shí)現(xiàn)通信,react使共同父組件觸發(fā)事件函數(shù)傳形參的方式,vue使用訂閱/發(fā)布模式的方式;3、react用Redux進(jìn)行狀態(tài)管理,vue使用vuex。

本教程操作環(huán)境:windows7系統(tǒng)、vue2.9.6&&react16版,DELL G3電腦。

Vue.js與React.js從某些反面來說很相似,通過兩個(gè)框架的學(xué)習(xí),有時(shí)候?qū)σ恍┯梅〞?huì)有一點(diǎn)思考,為加深學(xué)習(xí)的思索,特翻閱了兩個(gè)文檔,從以下各方面進(jìn)行了對(duì)比,加深了對(duì)這兩個(gè)框架的認(rèn)知。

1.數(shù)據(jù)綁定

1.1 Vue中有關(guān)數(shù)據(jù)綁定的部分

  • vue是雙向綁定, Vue.js 最核心的功能有兩個(gè),一是響應(yīng)式的數(shù)據(jù)綁定系統(tǒng),二是組件系統(tǒng)。所謂雙向綁定,指的是vue實(shí)例中的data與其渲染的DOM元素的內(nèi)容保持一致,無論誰被改變,另一方會(huì)相應(yīng)的更新為相同的數(shù)據(jù)。這是通過設(shè)置屬性訪問器實(shí)現(xiàn)的。

  • 在vue中,與數(shù)據(jù)綁定有關(guān)的有 插值表達(dá)式、指令系統(tǒng)、*Class和Style、事件處理器和表單空間、ajax請(qǐng)求和計(jì)算屬性

1.1.1插值表達(dá)式

插值和指令又稱為模板語法
- 數(shù)據(jù)綁定最常見的形式就是使用“Mustache”語法 (雙大括號(hào)) 的文本插值
- Mustache 語法不能作用在 HTML 特性上,遇到這種情況應(yīng)該使用 v-bind 指令

1.1.2 指令

  • vue中的指令很方便,指令 (Directives) 是帶有 v- 前綴的特殊屬性。指令屬性的值預(yù)期是單個(gè) JavaScript 表達(dá)式 (v-for 是例外情況,稍后我們?cè)儆懻?。指令的職責(zé)是,當(dāng)表達(dá)式的值改變時(shí),將其產(chǎn)生的連帶影響,響應(yīng)式地作用于 DOM。

  • vue中的12個(gè)指令: v-bind,v-once,v-model,v-text,v-html,v-on,v-if,v-else,v-show,v-for,v-pre,v-clock

1.1.3 class與style綁定

  • 數(shù)據(jù)綁定的一個(gè)常見需求是操作元素的 class 列表和它的內(nèi)聯(lián)樣式。因?yàn)樗鼈兌际菍傩?,我們可以用v-bind 處理它們:只需要計(jì)算出表達(dá)式最終的字符串。不過,字符串拼接麻煩又易錯(cuò)。因此,在 v-bind 用于 class 和 style 時(shí),Vue.js 專門增強(qiáng)了它。表達(dá)式的結(jié)果類型除了字符串之外,還可以是對(duì)象或數(shù)組。

  • 對(duì)象語法

    • 我們可以傳給 v-bind:class 一個(gè)對(duì)象,以動(dòng)態(tài)地切換 class

  • 數(shù)組語法

    • 我們可以把一個(gè)數(shù)組傳給 v-bind:class,以應(yīng)用一個(gè) class 列表:

1.1.4 條件渲染和列表渲染

1.1.5 事件處理器

1.1.6 表單控件

1.1.7 計(jì)算屬性

1.1.8 ajax數(shù)據(jù)請(qǐng)求

注: 關(guān)于vue的數(shù)據(jù)雙向綁定和單向數(shù)據(jù)流

1.2 react沒有數(shù)據(jù)雙向綁定

1.2.1事件處理

1.2.2 條件渲染

1.2.3 列表渲染

1.2.4 表單操作

1.2.5 狀態(tài)提升

2.組件化以及組件數(shù)據(jù)流

2.1 react中的組件及數(shù)據(jù)流

props與State的區(qū)別

- props是property的縮寫,可以理解為HTML標(biāo)簽的attribute。不可以使用this.props直接修改props,因?yàn)閜rops是只讀的,props是用于整個(gè)組件樹中傳遞數(shù)據(jù)和配置。在當(dāng)前組件訪問props,使用this.props。

- props是一個(gè)組件的設(shè)置參數(shù),可以在父控件中選擇性設(shè)置。父組件對(duì)子控件的props進(jìn)行賦值,并且props的值不可改變。一個(gè)子控件自身不能改變自己的 props。

- state:當(dāng)一個(gè)組件 mounts的時(shí)候,state如果設(shè)置有默認(rèn)值的會(huì)被使用,并且state可能時(shí)刻的被改變。一個(gè)子控件自身可以管理自己的state,但是需要注意的是,無法管理其子控件的state。所以可以認(rèn)為,state是子控件自身私有的。

- 每個(gè)組件都有屬于自己的state,state和props的區(qū)別在于前者(state)只存在于組件內(nèi)部,只能從當(dāng)前組件調(diào)用this.setState修改state值(不可以直接修改this.state?。?。

- props是一個(gè)父組件傳遞給子組件的數(shù)據(jù)流,可以一直的被傳遞到子孫組件中。然而 state代表的是子組件自身的內(nèi)部狀態(tài)。從語義上講,改變組件的狀態(tài),可能會(huì)導(dǎo)致dom結(jié)構(gòu)的改變或者重新渲染。而props是父組件傳遞的參數(shù),所以可以被用于初始化渲染和改變組件自身的狀態(tài),雖然大多數(shù)時(shí)候組件的狀態(tài)是又外部事件觸發(fā)改變的。我們需要知道的是,無論是state改變,還是父組件傳遞的 props改變,render方法都可能會(huì)被執(zhí)行。

- 一般我們更新子組件都是通過改變state值,更新新子組件的props值從而達(dá)到更新。

2.1.1 組件之間的通信

1、父子組件數(shù)通信

即:
- * 父組件更新組件狀態(tài) —–props—–> 子組件更新
- * 子組件更新父組件狀態(tài) —–需要父組件傳遞回調(diào)函數(shù)—–> 子組件調(diào)用觸發(fā)

2、非父子組件之間的通信,嵌套不深的非父子組件可以使共同父組件,觸發(fā)事件函數(shù)傳形參的方式來實(shí)現(xiàn)

兄弟組件:

(1) 按照React單向數(shù)據(jù)流方式,我們需要借助父組件進(jìn)行傳遞,通過父組件回調(diào)函數(shù)改變兄弟組件的props。
- 其實(shí)這種實(shí)現(xiàn)方式與子組件更新父組件狀態(tài)的方式是大同小異的。

(2) 當(dāng)組件層次很深的時(shí)候,在這里,React官方給我們提供了一種上下文方式,可以讓子組件直接訪問祖先的數(shù)據(jù)或函數(shù),無需從祖先組件一層層地傳遞數(shù)據(jù)到子組件中。

2.1.2 組件的生命周期

construtor() //創(chuàng)建組件
componentWillMount() //組件掛載之前
componentDidMount() // 組件掛載之后
componentWillReceiveProps() // 父組件發(fā)生render的時(shí)候子組件調(diào)用該函數(shù)
shouldComponentUpdate() // 組件掛載之后每次調(diào)用setState后都會(huì)調(diào)用該函數(shù)判斷是否需要重新渲染組件,默認(rèn)返回true
componentDidUpdate() // 更新
render() //渲染,react中的核心函數(shù)
componentWillUnmount() //組件被卸載的時(shí)候調(diào)用,一般在componentDidMount注冊(cè)的事件需要在這里刪除

2.2 vue中的組件和數(shù)據(jù)流

2.2.1 組件化應(yīng)用構(gòu)建

2.2.2 響應(yīng)式

2.2.3 組件的生命周期

2.2.3 組件之間的通信

1.父向子

- 每個(gè)組件實(shí)例都有自己的孤立隔離作用域。也就是說,不能(也不應(yīng)該)直接在子組件模板中引用父組件數(shù)據(jù)。要想在子組件模板中引用父組件數(shù)據(jù),可以使用 props 將數(shù)據(jù)向下傳遞到子組件。

- 每個(gè) prop 屬性,都可以控制是否從父組件的自定義屬性中接收數(shù)據(jù)。子組件需要使用 props 選項(xiàng)顯式聲明 props,以便它可以從父組件接收到期望的數(shù)據(jù)。

- 動(dòng)態(tài)Props,類似于將一個(gè)普通屬性綁定到一個(gè)表達(dá)式,我們還可以使用 v-bind 將 props 屬性動(dòng)態(tài)地綁定到父組件中的數(shù)據(jù)。無論父組件何時(shí)更新數(shù)據(jù),都可以將數(shù)據(jù)向下流入到子組件中

2.子向父

- 使用自定義事件
- 每個(gè) Vue 實(shí)例都接入了一個(gè)事件接口(events interface),也就是說,這些 Vue 實(shí)例可以做到:
- 使用 on(eventName)監(jiān)聽一個(gè)事件?使用emit(eventName) 觸發(fā)一個(gè)事件

3. 非父子組件通信
- 可以使用一個(gè)空的 Vue 實(shí)例作為一個(gè)事件總線中心(central event bus),用emit觸發(fā)事件,on監(jiān)聽事件

3.狀態(tài)管理

3.1 react中的狀態(tài)管理:Flux

reactjs和vuejs有哪些區(qū)別

3.2 vue中的狀態(tài)管理vuex

4.路由

4.1 react中的路由


  
  
  

- Link組件用于取代元素,生成一個(gè)鏈接,允許用戶點(diǎn)擊后跳轉(zhuǎn)到另一個(gè)路由。它基本上就是元素的React 版本,可以接收Router的狀態(tài)。

4.2 vue中的路由


  

Hello App!

  

                   Go to Foo     Go to Bar   

        

5. 渲染性能對(duì)比

5.1 react視圖渲染

組件渲染

- 當(dāng)React遇到的元素是用戶自定義的組件,它會(huì)將JSX屬性作為單個(gè)對(duì)象傳遞給該組件,這個(gè)對(duì)象稱之為“props”。

5.2 vue視圖渲染

6. 數(shù)據(jù)更新

6.1 react數(shù)據(jù)更新

6.2 vue數(shù)據(jù)更新

7. 開發(fā)模式及規(guī)模

7.1 react

7.1.1 開發(fā)模式

7.1.2 規(guī)模

7.2 vue

7.2.1 開發(fā)模式

7.2.2 腳手架

8. HTML&&CSS

- Vue 的整體思想是擁抱經(jīng)典的 Web 技術(shù),并在其上進(jìn)行擴(kuò)展。

8.1 react

8.1.1 JSX

8.1.2 組件作用域內(nèi)的CSS

8.2 vue

8.2.1 Templates模板語法

8.2.2 單文件組件CSS

8.3 小結(jié)

9. 使用場(chǎng)景

9.1 選擇react

9.1.1 期待構(gòu)建一個(gè)大型應(yīng)用程序——選擇React

9.1.2 期待同時(shí)適用于Web端和原生APP的框架——選擇React

9.1.3 期待最大的生態(tài)系統(tǒng)——選擇React

9.2 選擇vue

9.2.1 期待模板搭建應(yīng)用——選擇 Vue

9.2.2 期待簡(jiǎn)單和“能用就行”的東西——選擇 Vue

9.2.3 期待應(yīng)用盡可能的小和快——選擇Vue

服務(wù)器端渲染ssr">10. 服務(wù)器端渲染(SSR)

10.1 react

10.2 vue

1. 什么是服務(wù)器端渲染(SSR)?

2. 服務(wù)器端渲染優(yōu)勢(shì)

- 更好的 SEO,由于搜索引擎爬蟲抓取工具可以直接查看完全渲染的頁(yè)面。

- 更快的內(nèi)容到達(dá)時(shí)間(time-to-content),特別是對(duì)于緩慢的網(wǎng)絡(luò)情況或運(yùn)行緩慢的設(shè)備。無需等待所有的 JavaScript 都完成下載并執(zhí)行,才顯示服務(wù)器渲染的標(biāo)記,所以你的用戶將會(huì)更快速地看到完整渲染的頁(yè)面。通??梢援a(chǎn)生更好的用戶體驗(yàn),并且對(duì)于那些「內(nèi)容到達(dá)時(shí)間(time-to-content)與轉(zhuǎn)化率直接相關(guān)」的應(yīng)用程序而言,服務(wù)器端渲染(SSR)至關(guān)重要。

11. 附: react理念

1. 把UI圖劃分出組件層級(jí)

2. 用React創(chuàng)建一個(gè)靜態(tài)版本

3. 定義 UI 狀態(tài)的最小(但完整)表示

4. 確定你的State應(yīng)該位于哪里

5. 添加反向數(shù)據(jù)流

小結(jié)

總結(jié)一下,我們發(fā)現(xiàn),

Vue的優(yōu)勢(shì)包括:

- 模板和渲染函數(shù)的彈性選擇
- 簡(jiǎn)單的語法及項(xiàng)目創(chuàng)建
- 更快的渲染速度和更小的體積

React的優(yōu)勢(shì)包括:

- 更適用于大型應(yīng)用和更好的可測(cè)試性
- 同時(shí)適用于Web端和原生App
- 更大的生態(tài)圈帶來的更多支持和工具
- 而實(shí)際上,React和Vue都是非常優(yōu)秀的框架,它們之間的相似之處多過不同之處,并且它們大部分最棒的功能是相通的:
- 利用虛擬DOM實(shí)現(xiàn)快速渲染
- 輕量級(jí)
- 響應(yīng)式和組件化
- 服務(wù)器端渲染
- 易于集成路由工具,打包工具以及狀態(tài)管理工具
- 優(yōu)秀的支持和社區(qū)

看完了這篇文章,相信你對(duì)“reactjs和vuejs有哪些區(qū)別”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


本文題目:reactjs和vuejs有哪些區(qū)別
標(biāo)題網(wǎng)址:http://weahome.cn/article/ppggco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部