亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

關(guān)于react-router的幾種配置方式

劉永祥 / 3006人閱讀

摘要:本文給大家介紹的是相比于其他框架更靈活的配置方式,大家可以根據(jù)自己的項目需要選擇合適的方式。標(biāo)簽的方式下面我們看一個例子當(dāng)為時渲染我們可以看到這種路由配置方式使用標(biāo)簽,然后根據(jù)找到對應(yīng)的映射。

路由的概念

路由的作用就是將url和函數(shù)進(jìn)行映射,在單頁面應(yīng)用中路由是必不可少的部分,路由配置就是一組指令,用來告訴router如何匹配url,以及對應(yīng)的函數(shù)映射,即執(zhí)行對應(yīng)的代碼。

react-router

每一門JS框架都會有自己定制的router框架,react-router就是react開發(fā)應(yīng)用御用的路由框架,目前它的最新的官方版本為4.1.2。本文給大家介紹的是react-router相比于其他router框架更靈活的配置方式,大家可以根據(jù)自己的項目需要選擇合適的方式。

1.標(biāo)簽的方式

下面我們看一個例子:

import { IndexRoute } from "react-router"

const Dashboard = React.createClass({
  render() {
    return 
Welcome to the app!
} }) React.render(( {/* 當(dāng) url 為/時渲染 Dashboard */} ), document.body)

我們可以看到這種路由配置方式使用Route標(biāo)簽,然后根據(jù)component找到對應(yīng)的映射。

這里需要注意的是IndexRoute這個有點不一樣的標(biāo)簽,這個的作用就是匹配"/"
的路徑,因為在渲染App整個組件的時候,可能它的children還沒渲染,就已經(jīng)有"/"頁面了,你可以把IndexRoute當(dāng)成首頁。

嵌套路由就直接在Route的標(biāo)簽中在加一個標(biāo)簽,就是這么簡單

2.對象配置方式

有時候我們需要在路由跳轉(zhuǎn)之前做一些操作,比如用戶如果編輯了某個頁面信息未保存,提醒它是否離開。react-router提供了兩個hook,onLeave在所有將離開的路由觸發(fā),從最下層的子路由到最外層的父路由,onEnter在進(jìn)入路由觸發(fā),從最外層的父路由到最下層的自路由。

讓我們看代碼:

const routeConfig = [
  { path: "/",
    component: App,
    indexRoute: { component: Dashboard },
    childRoutes: [
      { path: "about", component: About },
      { path: "inbox",
        component: Inbox,
        childRoutes: [
          { path: "/messages/:id", component: Message },
          { path: "messages/:id",
            onEnter: function (nextState, replaceState) {
              //do something
            }
          }
        ]
      }
    ]
  }
]

React.render(, document.body)
3.按需加載的路由配置

在大型應(yīng)用中,性能是一個很重要的問題,按需要加載JS是一種優(yōu)化性能的方式。在React router中不僅組件是可以異步加載的,路由也是允許異步加載的。Route 可以定義 getChildRoutes,getIndexRoute 和 getComponents 這幾個函數(shù),他們都是異步執(zhí)行的,并且只有在需要的時候才會調(diào)用。

我們看一個例子:

const CourseRoute = {
  path: "course/:courseId",

  getChildRoutes(location, callback) {
    require.ensure([], function (require) {
      callback(null, [
        require("./routes/Announcements"),
        require("./routes/Assignments"),
        require("./routes/Grades"),
      ])
    })
  },

  getIndexRoute(location, callback) {
    require.ensure([], function (require) {
      callback(null, require("./components/Index"))
    })
  },

  getComponents(location, callback) {
    require.ensure([], function (require) {
      callback(null, require("./components/Course"))
    })
  }
}

這種方式需要配合webpack中有實現(xiàn)代碼拆分功能的工具來用,其實就是把路由拆分成小代碼塊,然后按需加載。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/84270.html

相關(guān)文章

  • 使用React 應(yīng)當(dāng)注意的幾個地方

    摘要:都會造成錯誤,注意一定一定嚴(yán)格的用,所以我建議直接復(fù)制我的。因為用的話他會轉(zhuǎn)義代碼,寫不寫其實一個樣。不可避免的,構(gòu)建肯定是要用到的。這個時候一般用的是在外面保存然后里面調(diào)用第二個坑更隱蔽。 目標(biāo)人群 獻(xiàn)給熟悉基礎(chǔ)的React語法的剛接觸React的同學(xué)~ 如果你已經(jīng)寫過半年以上的React那也不用看了,畢竟我水平并不高 Whats React React 是一個不存在的網(wǎng)絡(luò)公司Fac...

    高璐 評論0 收藏0
  • 【全棧React】第17天: 客戶端路由

    摘要:但是使用標(biāo)記將告訴瀏覽器處理路由就像服務(wù)器端路由一樣。組件需要一個稱為的屬性指向要渲染的客戶端路由。發(fā)生這種情況的原因是響應(yīng)路由器將渲染與路徑匹配的所有內(nèi)容除非另有指定。屬性預(yù)計將是一個函數(shù)將在對象連同和路由配置時調(diào)用。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3815原文:https://www.fullstackrea...

    harriszh 評論0 收藏0
  • 前端路由原理解析和實現(xiàn)

    摘要:如何實現(xiàn)前端路由要實現(xiàn)前端路由,需要解決兩個核心如何改變卻不引起頁面刷新如何檢測變化了下面分別使用和兩種實現(xiàn)方式回答上面的兩個核心問題。 原文鏈接:github.com/whinc/blog/… 在單頁應(yīng)用如此流行的今天,曾經(jīng)令人驚嘆的前端路由已經(jīng)成為各大框架的基礎(chǔ)標(biāo)配,每個框架都提供了強(qiáng)大的路由功能,導(dǎo)致路由實現(xiàn)變的復(fù)雜。想要搞懂路由內(nèi)部實現(xiàn)還是有些困難的,但是如果只想了解路由實現(xiàn)基本...

    lavor 評論0 收藏0
  • 哈姆雷特之 React

    摘要:最近兩三周在主要在寫,在這里寫一下,算是個總結(jié)。但是打算換成,它是推薦用或,就這樣決定把之前的換成了。這里面主要的問題是作用域??傊膊]有那么難。目前看來確實是非常適合于前后端分離的。 最近兩三周在主要在寫 React,在這里寫一下,算是個總結(jié)。 webpack 我們的后端語言用的是 Go, 對于寫網(wǎng)站來說,Go 并沒有好的前端資源(js, css,image)的管理方式(打包,壓縮...

    ?xiaoxiao, 評論0 收藏0
  • 手把手教你用React實現(xiàn)一個簡單的個人博客

    摘要:官方文檔中文文檔基本使用注意一定要在根目錄的中聲明,要不然點擊任何鏈接都無法跳轉(zhuǎn)。官方文檔中文文檔簡單的來說,每一次的修改狀態(tài)都需要觸發(fā),然而其實項目中我現(xiàn)在還沒用到修改數(shù)據(jù)。。。 學(xué)習(xí) React 的過程中實現(xiàn)了一個個人主頁,沒有復(fù)雜的實現(xiàn)和操作,適合入門 ~ 原文地址:https://github.com/axuebin/react-blog/issues/17 這個項目其實功能...

    zhaochunqi 評論0 收藏0

發(fā)表評論

0條評論

劉永祥

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<