国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue-route核心知識(shí)整理

這篇具有很好參考價(jià)值的文章主要介紹了Vue-route核心知識(shí)整理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

1 相關(guān)理解

1.1 對(duì) vue-router 的理解

1.2 對(duì) SPA 應(yīng)用的理解

1.3?對(duì)路由的理解

1.3.1 什么是路由?

1.3.2 路由的分類(lèi)

2 幾個(gè)注意點(diǎn)

3 路由的基本使用

4 嵌套 (多級(jí)) 路由

5 路由傳參

5.1 query 方式傳參

5.1.1?跳轉(zhuǎn)路由并攜帶query參數(shù), to的字符串寫(xiě)法

5.1.2?跳轉(zhuǎn)路由并攜帶query參數(shù), to的對(duì)象寫(xiě)法

5.2 給路由命名

5.3 params方式傳參

5.3.1?跳轉(zhuǎn)路由并攜帶params參數(shù), to的字符串寫(xiě)法

5.3.2?跳轉(zhuǎn)路由并攜帶params參數(shù), to的對(duì)象寫(xiě)法

5.4 props配置,實(shí)現(xiàn)傳參

5.4.1 props配置方式1

5.4.2 props配置方式2

5.4.3 props配置方式3

6 路由的replace屬性

7 路由的編程式導(dǎo)航

8 緩存路由組件

9 兩個(gè)新的生命周期鉤子

10 全局路由守衛(wèi)(前置和后置路由守衛(wèi))

11?獨(dú)享路由守衛(wèi)

12 組件內(nèi)守衛(wèi)

13 路由的兩種工作模式


1 相關(guān)理解

1.1 對(duì) vue-router 的理解

是vue的一個(gè)插件庫(kù),專(zhuān)門(mén)用來(lái)實(shí)現(xiàn)SPA應(yīng)用

1.2 對(duì) SPA 應(yīng)用的理解

1. 單頁(yè)Web應(yīng)用 (Single Page Web Application,? SPA)

2.? 整個(gè)應(yīng)用只有一個(gè)完整的頁(yè)面

3. 點(diǎn)擊頁(yè)面的導(dǎo)航鏈接不會(huì)刷新頁(yè)面,只會(huì)作頁(yè)面的局部刷新

4. 數(shù)據(jù)需要通過(guò) ajax請(qǐng)求獲取

1.3?對(duì)路由的理解

1.3.1 什么是路由?

1. 一個(gè)路由就是一組映射關(guān)系 (key-value)

2. key為路徑,value可能是function 或者 component

1.3.2 路由的分類(lèi)

【1】后端路由

1)理解:value就是function,用于處理客戶(hù)端提交的請(qǐng)求

2)工作過(guò)程:服務(wù)器接收到一個(gè)請(qǐng)求,根據(jù)請(qǐng)求的路徑找到匹配的函數(shù)來(lái)處理請(qǐng)求,并返回響應(yīng)的數(shù)據(jù)

【2】前端路由

1)理解:value就是component,用于展示頁(yè)面內(nèi)容

2)工作過(guò)程:當(dāng)瀏覽器的路徑發(fā)生改變時(shí),對(duì)應(yīng)的組件就會(huì)顯示


2 幾個(gè)注意點(diǎn)

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


3 路由的基本使用

【1】創(chuàng)建整個(gè)應(yīng)用的路由器

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


?【2】在main.js入口文件中引入

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


【3】App組件

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


4 嵌套 (多級(jí)) 路由

【1】router文件夾下的index.js文件中

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


【2】Home組件中

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


5 路由傳參

5.1 query 方式傳參

【1】先寫(xiě)個(gè)三級(jí)路由,讓其跳轉(zhuǎn)到Detail組件

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


【2】利用 query 將Message組件中的數(shù)據(jù)傳遞給組件Detail中

在Message組件中:

5.1.1?跳轉(zhuǎn)路由并攜帶query參數(shù), to的字符串寫(xiě)法

對(duì) to 進(jìn)行數(shù)據(jù)綁定并使用模板字符串的寫(xiě)法

<template>
    <div>
        <ul>
            <li v-for="m in messageList" :key="m.id">
                <!-- 跳轉(zhuǎn)路由并攜帶query參數(shù), to的字符串寫(xiě)法 -->
                <router-link :to="`/home/message/detail?id=${m.id}&title=${m.title}`">{{m.title}}</router-link>
            </li>
        </ul>

        <!-- 展示內(nèi)容 -->
        <router-view></router-view>
    </div>
</template>

<script>
    export default {
        name: 'Message',
        data() {
            return {
                messageList: [
                    {id:'001',title:'message001'},
                    {id:'002',title:'message002'},
                    {id:'003',title:'message003'}
                ]
            }
        },
    }
</script>

Detail組件中接收參數(shù):

<template>
    <div>
        <h3>Detail</h3>
        <ul>
            <li>消息編號(hào):{{ $route.query.id }}</li>
            <li>消息內(nèi)容:{{$route.query.title}} </li>
        </ul>
    </div>

</template>

<script>
    export default {
        name: 'Detail',
    }
</script>

?

5.1.2?跳轉(zhuǎn)路由并攜帶query參數(shù), to的對(duì)象寫(xiě)法

Message組件中:

<template>
    <div>
        <ul>
            <li v-for="m in messageList" :key="m.id">
                <!-- 跳轉(zhuǎn)路由并攜帶query參數(shù), to的對(duì)象寫(xiě)法 -->
                <router-link :to="{
                    path:'/home/message/detail',
                    query:{
                        id:m.id,
                        title:m.title
                    }
                }">
                    {{m.title}}
                </router-link>

            </li>
        </ul>

        <!-- 展示內(nèi)容 -->
        <router-view></router-view>
    </div>
</template>

<script>
    export default {
        name: 'Message',
        data() {
            return {
                messageList: [
                    {id:'001',title:'message001'},
                    {id:'002',title:'message002'},
                    {id:'003',title:'message003'}
                ]
            }
        },
    }
</script>

Detail組件中:

<template>
    <div>
        <h3>Detail</h3>
        <ul>
            <li>消息編號(hào):{{ $route.query.id }}</li>
            <li>消息內(nèi)容:{{$route.query.title}} </li>
        </ul>
    </div>

</template>

<script>
    export default {
        name: 'Detail',
    }
</script>

【總結(jié)】

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


5.2 給路由命名

在上述使用query傳參中,使用 to 的對(duì)象形式傳參時(shí),如果路徑很長(zhǎng)時(shí),就很麻煩

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


所有我們就可以給路由命名,通過(guò)name 指定要跳轉(zhuǎn)的路徑

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


在Message中

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


5.3 params方式傳參

【1】配置路由,聲明接收params參數(shù)

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


?

【2】Message組件中傳遞參數(shù)

5.3.1?跳轉(zhuǎn)路由并攜帶params參數(shù), to的字符串寫(xiě)法

<template>
    <div>
        <ul>
            <li v-for="m in messageList" :key="m.id">
                <!-- 跳轉(zhuǎn)路由并攜帶params參數(shù), to的字符串寫(xiě)法 -->
                <router-link :to="`/home/message/detail/${m.id}/${m.title}`">{{m.title}}</router-link>
            </li>
        </ul>

        <!-- 展示內(nèi)容 -->
        <router-view></router-view>
    </div>
</template>

<script>
    export default {
        name: 'Message',
        data() {
            return {
                messageList: [
                    {id:'001',title:'message001'},
                    {id:'002',title:'message002'},
                    {id:'003',title:'message003'}
                ]
            }
        },
    }
</script>

5.3.2?跳轉(zhuǎn)路由并攜帶params參數(shù), to的對(duì)象寫(xiě)法

使用對(duì)象形式傳參時(shí):指定跳轉(zhuǎn)路徑,必須使用name配置項(xiàng), 不允許使用path配置項(xiàng)

<template>
    <div>
        <ul>
            <li v-for="m in messageList" :key="m.id">
                <!-- 跳轉(zhuǎn)路由并攜帶params參數(shù), to的對(duì)象寫(xiě)法 -->
                <router-link :to="{
                    name: 'xiangqing',  // 如果使用params傳參這邊必須使用name, 不允許使用path
                    params:{
                        id:m.id,
                        title:m.title
                    }
                }">
                    {{m.title}}
                </router-link>

            </li>
        </ul>

        <!-- 展示內(nèi)容 -->
        <router-view></router-view>
    </div>
</template>

<script>
    export default {
        name: 'Message',
        data() {
            return {
                messageList: [
                    {id:'001',title:'message001'},
                    {id:'002',title:'message002'},
                    {id:'003',title:'message003'}
                ]
            }
        },
    }
</script>

【3】Detail組件接收參數(shù)

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


5.4 props配置,實(shí)現(xiàn)傳參

在router文件夾下的index.js文件中編寫(xiě)配置, 想傳遞參數(shù)給哪個(gè)組件,就給哪個(gè)組件加props配置

                   children: [ // 子路由的子路由(三級(jí)路由)
                        {
                            name: 'xiangqing',
                            path: 'detail',
                            component: Detail,

                           // props: ...
                        }
                    ] 

使用props配置傳參時(shí),就會(huì)將接收的參數(shù)以props形式傳遞給目標(biāo)組件


5.4.1 props配置方式1

props的第一種寫(xiě)法,值為對(duì)象,該對(duì)象中的所有key、value都會(huì)以props形式傳遞給Detail組件

這種方式用的不多,因?yàn)橹荒軅鬟f固定值的參數(shù)?

Vue-route核心知識(shí)整理,Vue,vue.js,javascript

Detail組件中接收參數(shù)并使用

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


?

5.4.2 props配置方式2

值為布爾值,若布爾值為真,就會(huì)把該路由組件收到的所有params參數(shù),以props形式傳遞給Detail組件

缺點(diǎn)是只能傳遞params參數(shù)

Vue-route核心知識(shí)整理,Vue,vue.js,javascript

接收方式跟上面一樣


?

5.4.3 props配置方式3

props的第三種寫(xiě)法,值為函數(shù)

推薦使用這種方式,因?yàn)閝uery參數(shù)和params參數(shù)都可以傳遞

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


?

6 路由的replace屬性

Vue-route核心知識(shí)整理,Vue,vue.js,javascript

Vue-route核心知識(shí)整理,Vue,vue.js,javascript

這個(gè)過(guò)程就相當(dāng)于壓棧的過(guò)程,push方式是將點(diǎn)擊的所有路徑都一次地壓入棧中,而replace方式是將當(dāng)前地路徑替換掉它之前地路徑


7 路由的編程式導(dǎo)航

作用:不借助<router-link>實(shí)現(xiàn)路由跳轉(zhuǎn),讓路由跳轉(zhuǎn)更加靈活

【代碼1】?

<template>
    <div>
        <ul>
            <li v-for="m in messageList" :key="m.id">
                <button @click="pushShow(m)">push查看</button>
                <button @click="replaceShow(m)">replace查看</button>

            </li>
        </ul>

        <!-- 展示內(nèi)容 -->
        <router-view></router-view>
    </div>
</template>

<script>
    export default {
        name: 'Message',
        data() {
            return {
                messageList: [
                    {id:'001',title:'message001'},
                    {id:'002',title:'message002'},
                    {id:'003',title:'message003'}
                ]
            }
        },
        methods: {
            pushShow(m) {
                this.$router.push({
                    name: 'xiangqing',
                    params:{
                        id: m.id,
                        title: m.title
                    }
                })
            },
            replaceShow(m) {
                this.$router.replace({
                    name: 'xiangqing',
                    params:{
                        id: m.id,
                        title: m.title
                    }
                })
            }
            
        },
    }
</script>

<style>

</style>

?【代碼2】

<template>
    <div class="col-xs-offset-2 col-xs-8">
        <div class="page-header">
            <h2>Vue Router Demo</h2>
            <button @click="back">后退</button>
            <button @click="forward">前進(jìn)</button>
        </div>
    </div>
</template>

<script>
    export default {
        name: 'Banner',
        methods: {
            back() {
                // this.$router.back()
                // go傳入的正數(shù)表示前進(jìn)的步數(shù),負(fù)數(shù)表示后退的步數(shù)
                this.$router.go(-1)
            },
            forward() {
                // this.$router.forward()
                this.$router.go(1)
            }
        },
    }
</script>

【總結(jié)】

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


8 緩存路由組件

當(dāng)一個(gè)組件中含有input表單時(shí),如果用戶(hù)在表單中輸入了內(nèi)容,這時(shí)又點(diǎn)擊了另一個(gè)鏈接,此時(shí)當(dāng)前的組件就會(huì)被銷(xiāo)毀,在下一次訪(fǎng)問(wèn)該組件時(shí),表單中的數(shù)據(jù)被清空了,如果用戶(hù)輸入了一些重要且長(zhǎng)的信息,這用戶(hù)體驗(yàn)是非常不好的。所以我們可以緩存路由組件解決這個(gè)問(wèn)題

News組件?

Vue-route核心知識(shí)整理,Vue,vue.js,javascript?

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


【總結(jié)】

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


?

9 兩個(gè)新的生命周期鉤子

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


10 全局路由守衛(wèi)(前置和后置路由守衛(wèi))

在router文件夾下的index.js文件中

注意這邊的meta配置項(xiàng)

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


?

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


11?獨(dú)享路由守衛(wèi)

只有前置,沒(méi)有后置

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


12 組件內(nèi)守衛(wèi)

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


13 路由的兩種工作模式

有hash和history兩種工作模式,默認(rèn)是hash模式

如何修改為history模式?

Vue-route核心知識(shí)整理,Vue,vue.js,javascript


Vue-route核心知識(shí)整理,Vue,vue.js,javascript文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-831478.html

到了這里,關(guān)于Vue-route核心知識(shí)整理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue代碼安全,10項(xiàng)防范措施_vue中的安全(1),架構(gòu)師花費(fèi)近一年時(shí)間整理出來(lái)的網(wǎng)絡(luò)安全核心知識(shí)

    vue代碼安全,10項(xiàng)防范措施_vue中的安全(1),架構(gòu)師花費(fèi)近一年時(shí)間整理出來(lái)的網(wǎng)絡(luò)安全核心知識(shí)

    避免在模板中直接渲染用戶(hù)提供的 HTML 內(nèi)容,以防止跨站腳本攻擊(XSS)。使用v-html時(shí)要格外小心。 data() { return { escapedHtml: this.userInput.replace(//?script/g, ‘’), }; } 3,授權(quán)和訪(fǎng)問(wèn)控制 根據(jù)用戶(hù)的角色和權(quán)限來(lái)控制對(duì)頁(yè)面和功能的訪(fǎng)問(wèn)??梢允褂寐酚墒匦l(wèi)或自定義權(quán)限驗(yàn)證邏輯

    2024年04月26日
    瀏覽(21)
  • 持續(xù)不斷更新中... 自己整理的一些前端知識(shí)點(diǎn)以及前端面試題,包括vue2,vue3,js,ts,css,微信小程序等

    答: 在普通的前端項(xiàng)目工程中,在script標(biāo)簽中增加setup即可使用api 使用setup()鉤子函數(shù) 答: 不要在計(jì)算屬性中進(jìn)行異步請(qǐng)求或者更改DOM 不要直接修改computed的值 區(qū)別: 計(jì)算屬性值基于其響應(yīng)式依賴(lài)被緩存,意思就是只要他之前的依賴(lài)不發(fā)生變化,那么調(diào)用他只會(huì)返回之前緩

    2024年02月11日
    瀏覽(58)
  • Vue入門(mén)——核心知識(shí)點(diǎn)

    Vue入門(mén)——核心知識(shí)點(diǎn)

    Vue是一套用于 構(gòu)建用戶(hù)界面 的 漸進(jìn)式 JS框架。 構(gòu)建用戶(hù)界面:就是將后端返回來(lái)的數(shù)據(jù)以不同的形式(例如:列表、按鈕等)顯示在界面上。 漸進(jìn)式:就是可以按需加載各種庫(kù)。簡(jiǎn)單的應(yīng)用只需要一個(gè)核心庫(kù)即可,復(fù)雜的應(yīng)用可以按照需求引入各種Vue插件。 采用組件化模式

    2024年02月06日
    瀏覽(19)
  • 【DAY43-1】vue知識(shí)整理

    Vue 是一個(gè)流行的JavaScript框架,它具有簡(jiǎn)單易學(xué)、靈活高效的特點(diǎn),在前端開(kāi)發(fā)中受到廣泛歡迎。Vue生態(tài)包括了眾多的插件和工具,以下是幾個(gè)常見(jiàn)的Vue生態(tài): Vuex :Vuex是為Vue.js應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式。它可以幫助你管理應(yīng)用程序的所有組件的狀態(tài),并使用一些規(guī)則來(lái)

    2023年04月22日
    瀏覽(17)
  • Vue.js的核心概念

    Vue.js 是一個(gè)流行的 JavaScript 框架,用于構(gòu)建交互式的 web 界面。 它的核心概念包括: 1. 響應(yīng)式系統(tǒng) :Vue 使用響應(yīng)式系統(tǒng)來(lái)確保 UI 與 underlying data 保持同步。當(dāng)數(shù)據(jù)變化時(shí),視圖自動(dòng)更新。 2. 組件系統(tǒng) :Vue 應(yīng)用由可復(fù)用的組件構(gòu)成。每個(gè)組件都有自己的視圖、業(yè)務(wù)邏輯和樣

    2024年01月18日
    瀏覽(30)
  • 《Vue.js 設(shè)計(jì)與實(shí)現(xiàn)》—— 02 框架設(shè)計(jì)核心要素

    《Vue.js 設(shè)計(jì)與實(shí)現(xiàn)》—— 02 框架設(shè)計(jì)核心要素

    框架設(shè)計(jì)并非僅僅實(shí)現(xiàn)功能那么簡(jiǎn)單,里面有很多學(xué)問(wèn)。例如: 框架應(yīng)該給用戶(hù)提供哪些構(gòu)建產(chǎn)物?產(chǎn)物的模塊格式如何? 當(dāng)用戶(hù)沒(méi)有以預(yù)期的方式使用框架時(shí),是否應(yīng)該打印合適的警告信息從而提供更好的開(kāi)發(fā)體驗(yàn),讓用戶(hù)快速定位問(wèn)題? 開(kāi)發(fā)版本和生產(chǎn)版本的構(gòu)建有何

    2024年02月03日
    瀏覽(28)
  • Vue.js核心概念簡(jiǎn)介:組件、數(shù)據(jù)綁定、指令和事件處理

    Vue.js核心概念簡(jiǎn)介:組件、數(shù)據(jù)綁定、指令和事件處理

    本文介紹了Vue.js的四個(gè)核心概念:組件、數(shù)據(jù)綁定、指令和事件處理。每個(gè)概念都通過(guò)一個(gè)簡(jiǎn)單的示例進(jìn)行了詳細(xì)的解釋。通過(guò)學(xué)習(xí)這些概念,您將能夠充分利用Vue.js的強(qiáng)大功能,構(gòu)建高效、靈活的Web應(yīng)用程序。 1 組件 組件是Vue.js的核心概念之一,它允許您將UI分解為相互作

    2024年02月04日
    瀏覽(28)
  • JavaScript 框架比較:Angular、React、Vue.js

    在 Web 開(kāi)發(fā)領(lǐng)域,JavaScript 提供大量技術(shù)??晒┻x擇。其中最典型的三套組合,分別是 MERN、MEAN 和 MEVN。這些首字母相同的選項(xiàng)各自代表不同的技術(shù)加工具組合。為了在這些技術(shù)棧中做出明智選擇,讓我們先從核心組件聊起,再對(duì)各自前端框架(React、Angular 和 Vue)進(jìn)行簡(jiǎn)化比

    2024年01月20日
    瀏覽(36)
  • 【js&vue】聯(lián)合gtp仿寫(xiě)一個(gè)簡(jiǎn)單的vue框架,以此深度學(xué)習(xí)JavaScript

    【js&vue】聯(lián)合gtp仿寫(xiě)一個(gè)簡(jiǎn)單的vue框架,以此深度學(xué)習(xí)JavaScript

    lifecycle.js 注解: this.$options.beforeMount.call(this);與 this.$options.beforeMount();有什么區(qū)別: call(this) ?的作用是將當(dāng)前對(duì)象( this )作為參數(shù)傳遞給? beforeMount ?方法,使得在? beforeMount ?方法內(nèi)部可以通過(guò)? this ?訪(fǎng)問(wèn)到當(dāng)前對(duì)象的上下文 直接調(diào)用了? beforeMount ?方法,沒(méi)有指定上下

    2024年02月09日
    瀏覽(37)
  • vue diff算法與虛擬dom知識(shí)整理(4) h函數(shù)虛擬節(jié)點(diǎn)嵌套

    vue diff算法與虛擬dom知識(shí)整理(4) h函數(shù)虛擬節(jié)點(diǎn)嵌套

    那么 先補(bǔ)充上文有一個(gè)沒(méi)強(qiáng)調(diào)的點(diǎn) h函數(shù) 當(dāng)你不需要屬性時(shí) 其實(shí)是可以不傳的 例如 我們打開(kāi)案例 打開(kāi) src下的index.js 修改代碼如下 聲明標(biāo)簽為div 不需要任何標(biāo)簽屬性 因此 我們就直接 告訴他div 然后后面一個(gè)參數(shù)直接跟里面的文本 程序也能識(shí)別 我們運(yùn)行項(xiàng)目 可以看到 一切

    2024年02月02日
    瀏覽(40)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包