Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Едностранично приложение (SPA) е уебсайт или уеб приложение, което динамично пренаписва съществуваща уеб страница с нова информация от уеб сървъра.

В приложение на React компонентите извличат съдържанието на сайта и го рендират в един HTML файл във вашия проект.

React Router ви помага да навигирате до компонента по ваш избор и го изобразява в HTML файла. За да го използвате, трябва да знаете как да настроите и интегрирате React Router с вашето React приложение.

Как да инсталирате React Router

За да инсталирате React Router във вашия React проект, като използвате npm, мениджърът на пакети на JavaScript, изпълнете следната команда в директорията на вашия проект:

npm реагирам-рутер-дом

Като алтернатива можете да изтеглите пакета с помощта на Yarn, мениджър на пакети, който ви позволява да инсталирате библиотечни пакети офлайн.

За да инсталирате React Router с помощта на Yarn, изпълнете тази команда:

instagram viewer
yarn add react-router-dom@6

Настройване на React Router

За да конфигурирате React Router и да го направите достъпен във вашето приложение, импортирайте BrowserRouter от реагират-рутер-дом вътре във вашия index.js файл, след което обвийте компонента на приложението си в BrowserRouter елемент:

импортиране Реагирайте от"реагира";
импортиране ReactDOM от'react-dom/клиент';
импортиране Приложение от„./Приложение“;
импортиране {BrowserRouter} от'react-router-dom';

конст корен = ReactDOM.createRoot( документ.getElementById("корен") );

root.render(


</BrowserRouter>
);

Обвиване на компонента на приложението в BrowserRouter дава на цялото приложение пълен достъп до възможностите на рутера.

Маршрутизиране към други компоненти

След като настроите вашия рутер във вашето приложение, трябва да продължите и да създадете компонентите на приложението си, да ги маршрутизирате и да ги визуализирате. Следният код импортира и създава компоненти, наречени „Начало“, „Информация“ и „Блог“. Той също така внася Маршрут и Маршрути елементи от реагират-рутер-дом.

Вие ще определите своите маршрути вътре в Приложение компонент:

импортиране { Маршрути, Маршрут } от'react-router-dom';
импортиране У дома от'./У дома';
импортиране относно от'./Относно';
импортиране Блог от'./Блог';

функцияПриложение() {
връщане (

'/' елемент={ } />
'/относно' елемент={ } />
'/блог' елемент={ }/>
</Routes>
)
}

износпо подразбиране Приложение;

The Приложение компонент е основният компонент, който изобразява целия код, който сте написали в другите си компоненти.

The Маршрути елемент е родителският елемент, който обгръща отделните маршрути, които създавате в компонента на вашето приложение. The Маршрут елемент създава единичен маршрут. Необходими са два атрибута на проп: a път и ан елемент.

The път определя URL пътя на предвидения компонент. Първият маршрут в горния кодов блок използва обратна наклонена черта (/) като свой път. Това е специален маршрут, който React ще изобрази първо, така че У дома изобразява компонент, когато стартирате приложението си. Не бъркайте тази система с внедряване на условно изобразяване във вашите React компоненти. Можете да дадете това път дайте всяко име, което искате.

The елемент атрибут дефинира компонента, който Маршрут ще изобрази.

The връзка компонент е компонент на React Router, използван за навигация по различни маршрути. Тези компоненти имат достъп до различните маршрути, които сте създали.

Например:

импортиране { Връзка } от'react-router-dom';

функцияУ дома() {
връщане (


'/относно'>Страница за информация</Link>
'/блог'>Страница в блог</Link>

Това е началната страница
</div>
)
}

износпо подразбиране У дома;

The връзка компонент е почти идентичен с HTML anchor тага, той просто използва атрибут с име "до" вместо "href". The връзка компонент навигира до маршрута със съответното име на пътя като свой атрибут и изобразява компонента на маршрута.

Вложено маршрутизиране и как да го приложите

React Router поддържа вложено маршрутизиране, което ви позволява да обгръщате няколко маршрута в един маршрут. Това се използва главно, когато има известно сходство в URL пътищата на маршрутите.

След като създадете компонентите, които искате да маршрутизирате, ще разработите индивидуални маршрути за всеки от тях в ап компонент.

Например:

импортиране { Маршрути, Маршрут } от'react-router-dom'; 
импортиране Статии от'./Статии';
импортиране Нова Статия от'./Нова статия';
импортиране ArticleOne от'./ArticleOne';

функцияПриложение() {
връщане (

'/статия' елемент={ }/>
'/статия/нова' елемент={ }/>
'/статия/1' елемент={ }/>
</Routes>
)
}

износпо подразбиране Приложение;

Кодовият блок по-горе импортира и насочва създадените компоненти Статии, Нова Статия, и ArticleOne. Има някои прилики в URL пътищата между трите маршрута.

The Нова Статия Името на пътя на маршрута започва по същия начин като Статии Името на пътя на маршрута с добавена обратна наклонена черта (/) и думата "нов", т.е. (/ново). Единствената разлика между имената на пътищата на Статии Маршрут и ArticleOne Маршрутът е наклонената черта (/1) в края на ArticleOne пътека на компонента.

Можете да вложите трите маршрута, вместо да ги оставяте в текущото им състояние.

Така:

импортиране { Маршрути, Маршрут } от'react-router-dom';
импортиране Статии от'./Статии';
импортиране Нова Статия от'./Нова статия';
импортиране ArticleOne от'./ArticleOne';

функцияПриложение() {
връщане (

'/статия'>
}/>
'/статия/нова' елемент={ }/>
'/статия/1' елемент={ }/>
</Route>
</Routes>
)
}

износпо подразбиране Приложение;

Обвили сте трите отделни маршрута в един Маршрут елемент. Имайте предвид, че родителят Маршрут елементът има само път атрибут и бр елемент атрибут, който определя компонента за изобразяване. The индекс атрибут в първото дете Маршрут елемент уточнява, че това Маршрут изобразява, когато навигирате до URL пътя на родителя Маршрут.

За да направите кода си по-добър и поддържаем, трябва да дефинирате маршрутите си в компонент и да го импортирате в ап компонент за използване.

Например:

импортиране { Маршрути, Маршрут } от'react-router-dom';
импортиране Статии от'./Статии';
импортиране Нова Статия от'./Нова статия';
импортиране ArticleOne от'./ArticleOne';

функцияArticleRoutes() {
връщане (

}/>
'/статия/нова' елемент={ }/>
'/статия/1' елемент={ }/>
</Routes>
)
}

износпо подразбиране ArticleRoutes;

Компонентът в кодовия блок по-горе съдържа вложените маршрути, които преди са били в компонента на приложението. След като създадете компонента, трябва да го импортирате в ап компонент и го маршрутизирайте с помощта на единичен Маршрут елемент.

Например:

импортиране { Маршрути, Маршрут } от'react-router-dom';
импортиране ArticleRoutes от'./ArticleRoutes';

функцияПриложение() {
връщане (

'/статия/*' елемент={ }>
</Routes>
)
}

износпо подразбиране Приложение;

На финала Маршрут компонент, добавените символи обратна наклонена черта и звездичка в края на името на пътя гарантират, че името на пътя съответства на всяко име на път, което започва с (/статия).

Има повече за React Router

Вече трябва да сте запознати с основите на това как да създавате едностранични приложения в React.js, като използвате React Router.

В библиотеката на React Router има много повече функции, които правят изживяването на разработчиците по-динамично при изграждане на уеб приложения.