本篇文章主要介紹如何將你的AngularJS1.x應用遷移至React的方法,現在分享給大家,也給大家做個參考。
Angular 和 React 都是偉大的框架/函式庫。 Angular 提供了 MVC(模型、視圖、控制器)的定義結構。 React 提供基於狀態變化的輕量級呈現機制。通常情況下,開發者在 AngularJS 上有一個舊的應用程式後,他們會想用 ReactJS 建立新的功能。
雖然將 AngularJS 應用程式移除,從頭開始建立一個 ReactJS 應用程式是不錯的選擇。但對於大規模應用來說,它不是一個可行的解決方案。在這種情況下,單獨建立一個 React 元件並將其匯入 Augular 會更容易。
在這篇文章中,我將幫你在 Angular 應用中使用 react2angular 建立一個 React 元件。
目標和計劃
這裡就是我們將要做的事情—
給定: 一個用來展示城市名稱和它的著名景點的Angular 應用。
目標: 給該 Angular 應用程式新增一個 React 元件。 React 的元件將會顯示一張特徵化的景點照片。
計畫: 我們將建立一個 React 元件,透過圖片 Url 來傳遞,並將圖像作為一個 React 元件來顯示。
讓我們開始吧!
第 0 步:擁有一個 Angular 應用程式
為實作本文的目的,請保持 Angular 應用的簡單性。我計劃在 2018 年進行歐洲之旅,因此我的 Angular 應用實質上是我想訪問的目的地清單。
以下是資料集bucketlist 看起來的樣子:
const bucketlist = [{ city: 'Venice', position: 3, sites: ['Grand Canal', 'Bridge of Sighs', 'Piazza San Marco'], img: 'https://unsplash.com/photos/ryC3SVUeRgY', }, { city: 'Paris', position: 2, sites: ['Eiffel Tower', 'The Louvre', 'Notre-Dame de Paris'], img: 'https://unsplash.com/photos/R5scocnOOdM', }, { city: 'Santorini', position: 1, sites: ['Imerovigli', 'Akrotiri', 'Santorini Arts Factory'], img: 'https://unsplash.com/photos/hmXtDtmM5r0', }];
這是angularComponent.js 的樣子:
function AngularComponentCtrl() { var ctrl = this; ctrl.bucketlist = bucketlist; }; angular.module('demoApp').component('angularComponent', { templateUrl: 'angularComponent.html', controller: AngularComponentCtrl });
這是angularComponent.html:
<p ng-repeat="item in $ctrl.bucketlist" ng-sort="item.position"> <h2>{{item.city}}</h2> <p> I want to see <span ng-repeat="sight in item.sights">{{sight}} </p></span> </p>
超簡單!現在可以去聖托里尼了...
第1步:安裝依賴關係
如果你的編輯器沒有配置,那麼從Angular 遷移到React可能會很痛苦。我們將首先安裝 linting 。
npm install --save eslint babel-eslint
接下來,安裝 react2angular 。如果你從未安裝過 React ,你還將需要安裝 react,react-dom 和 prop-types 。
npm install --save react2angular react react-dom prop-types
第2步:建立一個 React 元件
現在,我們已經有了一個 Angular 元件用來呈現城市的名稱。接下來,我們需要渲染特色圖像。假設這個圖片是透過 props 提供給我們的。我們的React 元件如下所示:
import {Component} from 'react'; class RenderImage extends Component { render() { const imageUrl = this.props.imageUrl; return ( <p> <img src={imageUrl} alt=""/> </p> ); } }
第3步:傳遞props 屬性
請記住,在第2步中,假設有一個透過props 取得的可用影像。我們現在要填入 props 值。你可以使用 props 將依賴關係傳遞給 React 元件。請務必注意,React 元件沒有任何 Angular 相依性可用。你可以這樣想 - React 元件就像是連接到 Angular 應用的容器。如果你需要容器繼承父母的訊息,你將需要透過 props 明確地存取。
所以,為了傳遞依賴關係,我們將在Angular 中新增一個renderImage 元件,並將其作為參數傳遞給imageUrl :
angular.module('demoApp', []) .component('renderImage', react2angular(RenderImage,['imageUrl']));
第4步:導入Angular 模板
現在,你可以像其他元件一樣簡單地將這個元件匯入到Angular 應用程式中:
<p ng-repeat="item in $ctrl.bucketlist"> <h2>{{item.city}}</h2> <p> I want to see <span ng-repeat="site in item.sites">{{site}}</span> <render-image image-url={{item.img}}></render-image> </p>
Ta Da!不敢相信,這簡直就是魔法。當然,這(更多的)是艱苦的工作和汗水,還有陪伴我們的咖啡,等等。
現在就去建立一些 React 元件吧,勇士!
上面是我整理給大家的,希望今後會對大家有幫助。
相關文章:
在JavaScript中如何實現獲取select下拉方塊中第一個值
以上是AngularJS1.x應用程式遷移至React(詳細教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!