国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

如何將你的AngularJS1.x應用遷移至React的方法

2019-11-19 14:25:54
字體:
來源:轉載
供稿:網友

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:

<div 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></div>

超簡單! 現在可以去圣托里尼了...

第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 (   <div>    <img src={imageUrl} alt=""/>   </div>   ); }}

第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 應用中:

<div 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></div>

Ta Da! 不敢相信,這簡直就是魔法。當然,這(更多的)是艱苦的工作和汗水,還有陪伴我們的咖啡,等等。

現在就去構建一些 React 組件吧,勇士!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 图们市| 云龙县| 岐山县| 大埔区| 凤庆县| 临清市| 徐州市| 哈巴河县| 六安市| 沭阳县| 鄂尔多斯市| 孟津县| 望都县| 沧源| 阳原县| 丰宁| 太和县| 益阳市| 德格县| 基隆市| 洛隆县| 咸丰县| 类乌齐县| 黔江区| 嘉禾县| 剑河县| 涿鹿县| 贵定县| 谷城县| 乌拉特中旗| 安龙县| 阳东县| 明溪县| 墨玉县| 德保县| 和顺县| 大庆市| 扎鲁特旗| 商丘市| 阳江市| 广昌县|