首頁 > web前端 > js教程 > 主體

AngularJS1.x應用程式怎麼移轉到React

php中世界最好的语言
發布: 2018-04-13 09:29:27
原創
1711 人瀏覽過

這次帶給大家AngularJS1.x應用程式怎麼移轉到React,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 元件吧,勇士! 

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

Vue.js中元件使用詳解

mysql連線池怎樣使用交易自動回收(附程式碼)

#

以上是AngularJS1.x應用程式怎麼移轉到React的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!