成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

20190613-Vue Router 基礎(chǔ)(一)

andong777 / 1374人閱讀

摘要:那么這個時候,我們需要在中,加載配置三個組件為復(fù)數(shù)。傳遞參數(shù)不需要在中進(jìn)行配置獲取參數(shù)其他的寫法帶查詢參數(shù),下面的結(jié)果為拼到中

什么是 Vue Router?

Vue Router是Vue.js的官方路由管理器,可以控制Vue單頁應(yīng)用的路由。

如何快速上手? vue-cli腳手架自帶Vue-Router依賴
新版的vue-cli腳手架中,默認(rèn)default模式?jīng)]有router依賴,請選擇Manually select features后添加Router依賴后,選擇History模式。

vue-cli官網(wǎng)

在HTML進(jìn)行路由設(shè)置

    
    新建分類
    

我們可以利用標(biāo)簽來控制單頁應(yīng)用的跳轉(zhuǎn)路徑

使用單文件組件內(nèi)進(jìn)行路由設(shè)置

    新建分類


export default {
  methods: {
    onCreate() {
      this.$router.push({
        path: "/categories/create"
      })
    }
  }
}

我可以使用this.$router方法進(jìn)行操作路由

執(zhí)行了push或跳轉(zhuǎn)操作還遠(yuǎn)遠(yuǎn)不夠,我們還在router.js上進(jìn)行路由(目錄)添加你需要對應(yīng)標(biāo)準(zhǔn)的地址以及地址包含component組件,不然編譯器不知道你要跳轉(zhuǎn)的實質(zhì)內(nèi)容是什么~
router.js配置
// 按需加載你需要的依賴

import Vue from "vue"
import Router from "vue-router"
import Main from "./views/main.vue"
import CategoryEdit from "./components/categoryEdit.vue"

Vue.use(Router)

export default new Router({
  mode: "history",   // history模式
  base: process.env.BASE_URL, // 環(huán)境內(nèi)部基礎(chǔ)地址
  routes: [
    {
      path: "/", // 當(dāng)?shù)刂吩诟夸浀臅r候,跳轉(zhuǎn)到Main的組件,這就是首頁
      name: "main",
      component: Main,
      children: [
        {
          path: "/categories/create",// 它是Main的子路由,默認(rèn)在首頁 調(diào)用CategoryEdit組件
          name: "categoryCreate",
          component: CategoryEdit
        },
        {
          path: "/categories/create", // 它是Main的子路由, 當(dāng)?shù)刂忿D(zhuǎn)到/categories/create上,則調(diào)用CategoryEdit組件
          name: "categoryCreate",
          component: CategoryEdit
        }
      ]
    }
  ]
})
嵌套路由

剛剛在上面我們提高了「子路由」,然后我們開始了解下嵌套路由

/user/foo/profile                     /user/foo/posts
+------------------+                  +-----------------+
| User             |                  | User            |
| +--------------+ |                  | +-------------+ |
| | Profile      | |  +------------>  | | Posts       | |
| |              | |                  | |             | |
| +--------------+ |                  | +-------------+ |
+------------------+                  +-----------------+

這是官網(wǎng)的栗子,我們看來下更直觀。

我們要做的是改變這個網(wǎng)頁的子路由內(nèi)容組件人,讓我們看下代碼吧~


    
      
        
          
          
            新建分類
            分類列表
          
        
      
    
    
      
      
      
        
        
        
      
    


export default {
  methods: {
    onCreate() {
      this.$router.push({
        path: "/categories/create"
      })
    }
  }
}

當(dāng)我們在進(jìn)行執(zhí)行 $this.router.push 或者 跳轉(zhuǎn)的時候,
我們可以看到,push的路徑是「/categories/create」,回到router.js代碼上,我們可以看到,/categories/create是在/根目錄下的children里面,這就說明它是根目錄的子路由,子路由在子路由標(biāo)簽上進(jìn)行渲染。

我們還可以利用的name屬性進(jìn)行跳轉(zhuǎn)制定的子路由容器
如圖上,父容器HTML中有3個route視圖:

header

side

content

我們需要這三個都是動態(tài)的,都是需要根據(jù)需求加載不同的內(nèi)容。



那么這個時候,我們需要在router.js中,加載配置三個組件

components為復(fù)數(shù)。
import Header from "./components/header.vue"
import Side from "./components/side.vue"
import Content from "./components/content.vue"
import CategoryEdit from "./components/categoryEdit.vue"
import CategoryList from "./components/categoryList.vue"

 routes: [
    {
      path: "/",
      name: "main",
      components: {
        efault: Header,
        a: Side,
        b: Content
      },
      children: [
        {
          path: "/categories/create/:userid",
          name: "categoryCreate",
          component: CategoryEdit
        },
        {
          path: "/",
          name: "categoryList",
          component: CategoryList
        }
      ]
    }
  ]
動態(tài)路由分配(如何給函數(shù)添加參數(shù)以及如何保證跳轉(zhuǎn)的唯一性)
在絕大分部情況下,我們需要利用同一個組件加載不同的數(shù)據(jù)內(nèi)容(比如詳情、用戶表信息等等),那我們怎么保證跳轉(zhuǎn)的唯一性呢?

這時候,我們需要利用路由命名方法

1.router.js 配置對應(yīng)路徑以及名字
export default new Router({
  mode: "history",
  base: process.env.BASE_URL,
  routes: [
    {
      path: "/",
      name: "main",
      component: Main,
      children: [
        {
          path: "/categories/create/:userid", // 這是userid就是參數(shù)名
          name: "categoryCreate",
          component: CategoryEdit
        },
        {
          path: "/",
          name: "categoryList",
          component: CategoryList
        }
      ]
    }
  ]
})
2.路由容器,執(zhí)行跳轉(zhuǎn)操作
  onCreate() {
      this.$router.push({
        name: "categoryCreate",
        params: { userid: 123 }
      })
    }
3.點擊跳轉(zhuǎn),則地址變成
http://localhost:8080/categories/create/123
4.在子路由容器中獲取到參數(shù)名字和內(nèi)容
mounted() {
    // 注意是this.$route,是路由對象
    console.log("你獲取的參數(shù)是:" + this.$route.params); 
},

打印出來的數(shù)據(jù)

{
   userid: "123"
}

關(guān)于命名路由,還有其他的寫法

// HTML上
User

// .vue組件的其他寫法
const userId = "123"

router.push({ name: "user", params: { userId }}) // -> /user/123
router.push({ path: `/user/${userId}` }) // -> /user/123

// 這里的 params 不生效,必須使用上面的寫法
router.push({ path: "/user", params: { userId }}) // -> /user
GET請求-路由組件傳參數(shù)

這個和一般的url上拼接參數(shù),獲取一樣,只不過router提供一個設(shè)置和獲取方法。

http://localhost:8080/categories/create/123?dataval=admin
傳遞參數(shù)
    this.$router.push({
        name: "categoryCreate?ad=11",
        params: { 
          userid: 123 
        },
        query: {
          dataval: "admin"
        }
      })
不需要在router.js中進(jìn)行配置
獲取參數(shù)
let val = this.$route.query.dataval; // admin
其他的寫法

Register


this.$router.push({path: `/categories/create/${userid}?admin=tre`});

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

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

相關(guān)文章

  • vue-router 基礎(chǔ)知識點

    摘要:路由模塊的本質(zhì)就是建立起和頁面之間的映射關(guān)系。模式的原理是事件監(jiān)測值變化,可以在對象上監(jiān)聽這個事件。這兩個方法應(yīng)用于瀏覽器記錄棧,在當(dāng)前已有的基礎(chǔ)之上,它們提供了對歷史記錄修改的功能。 vue-router 這里的路由并不是指我們平時所說的硬件路由器,這里的路由就是SPA(單頁應(yīng)用)的路徑管理器。再通俗的說,vue-router就是WebApp的鏈接路徑管理系統(tǒng)。vue-router是...

    ningwang 評論0 收藏0
  • Vue-router(vue路由基礎(chǔ)詳解)

    摘要:你可以在創(chuàng)建實例的時候,在配置中給某個路由設(shè)置名稱。如果沒有設(shè)置名字,那么默認(rèn)為。 Vue.js路由(Vue-router) 安裝 直接引入 vue-router下載鏈接https://unpkg.com/vue-router/... npm下載 npm install vue-router 如果在一個模塊化工程中使用它,必須要通過 Vue.use() 明確地安裝路由功能:在你的文...

    JasinYip 評論0 收藏0
  • vue 路由基礎(chǔ)

    摘要:路由基礎(chǔ)使用插件處理路由,路由是開發(fā)單頁應(yīng)用必須掌握的知識。什么是是官方提供前端路由插件,借助它我們實現(xiàn)可以基于路由和組件的單頁面應(yīng)用。子路由前面不能有。命名路由路由對象中的屬性是路由的名字,可用該名字指定路徑。 vue 路由基礎(chǔ) vue 使用 vue-router 插件處理路由,路由是開發(fā)單頁應(yīng)用必須掌握的知識。 什么是 vue-router? (1)vue-router 是 Vue...

    mingde 評論0 收藏0
  • [ 起學(xué)React系列 -- 11 ] React-Router4 (1)

    摘要:中的包中的包主要有三個和。的理念上面提到的理念是一切皆組件以下統(tǒng)一稱組件。從這點來說的確方便了不少,也迎合一切皆組件的理念。組件是中主要的組成單位,可以認(rèn)為是或的路由入口。將該標(biāo)示為嚴(yán)格匹配路由。的屬性追加一條。 2019年不知不覺已經(jīng)過去19天了,有沒有給自己做個總結(jié)?有沒有給明年做個計劃?當(dāng)然筆者已經(jīng)做好了明年的工作、學(xué)習(xí)計劃;同時也包括該系列博客剩下的博文計劃,目前還剩4篇:分別...

    tinysun1234 評論0 收藏0
  • Node.js使用Koa搭建 基礎(chǔ)項目

    摘要:目錄一創(chuàng)建項目二配置路由三靜態(tài)資源四模板引擎五結(jié)語是由原班人馬打造的超輕量服務(wù)端框架與相比,除了自由度更高,可以自行引入中間件之外,更重要的是使用了,從而避免了回調(diào)地獄不過也是因為代碼升級,所以需要以上的環(huán)境一創(chuàng)建項目手動創(chuàng)建一個項目目錄, 目錄 一、創(chuàng)建項目二、配置路由三、靜態(tài)資源四、模板引擎五、結(jié)語 Koa 是由 Express 原班人馬打造的超輕量服務(wù)端框架與 Express 相...

    BingqiChen 評論0 收藏0

發(fā)表評論

0條評論

andong777

|高級講師

TA的文章

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