欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue3中關(guān)于路由規(guī)則的props配置方式

 更新時(shí)間:2024年03月18日 10:14:41   作者:小饅頭學(xué)python  
這篇文章主要介紹了Vue3中關(guān)于路由規(guī)則的props配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

簡(jiǎn)單介紹

在 Vue3 中,使用 Vue Router 進(jìn)行路由管理時(shí),可以通過配置路由規(guī)則的 props 屬性,將路由參數(shù)傳遞給組件。

這樣可以使路由參數(shù)直接作為組件的屬性,在組件中使用更加方便

在路由配置中使用 props

在定義路由規(guī)則時(shí),可以通過設(shè)置 props 屬性來指定如何將路由參數(shù)傳遞給組件。

props 可以是一個(gè)布爾值、對(duì)象或函數(shù)

props的第一種寫法

我們來回顧一下上節(jié)對(duì)于Detail.vue中的代碼,使用的是params參數(shù)

<template>
    <ul class="news-list">
      <li>編號(hào):{{ route.params.id }}</li>
      <li>標(biāo)題:{{ route.params.title }}</li>
      <li>內(nèi)容:{{ route.params.content }}</li>
    </ul>
  </template>
    
  <script setup lang="ts" name="About">
  import { useRoute } from 'vue-router'
  let route = useRoute()
  </script>
  
  <style scoped>
    .news-list {
      list-style: none;
      padding-left: 20px;
    }
  
    .news-list>li {
      line-height: 30px;
    }
  </style>

如果我們不想在模版中寫route的話,我們需要使用torefs進(jìn)行結(jié)構(gòu),下面的博客或許會(huì)幫助你

Vue3 toRefs和toRef在reactive中的一些應(yīng)用

修改后的代碼如下,和之前的運(yùn)行結(jié)果是一樣的

<template>
    <ul class="news-list">
      <li>編號(hào):{{ params.id }}</li>
      <li>標(biāo)題:{{ params.title }}</li>
      <li>內(nèi)容:{{ params.content }}</li>
    </ul>
  </template>
    
  <script setup lang="ts" name="About">
  import { toRefs } from 'vue'
  import { useRoute } from 'vue-router'
  let route = useRoute()
  let {params} = toRefs(route)
  </script>
  
  <style scoped>
    .news-list {
      list-style: none;
      padding-left: 20px;
    }
  
    .news-list>li {
      line-height: 30px;
    }
  </style>

這樣我們就可以省略了route,但是如果我們還想省略params呢,該怎么做

接下來我們引入props,來實(shí)現(xiàn)無需寫route和params

首先我們需要在index.ts中加上一句

再之后我們就在Detail.vue的ts里面加上一句就可以完美的實(shí)現(xiàn)之前的代碼了

 <script setup lang="ts" name="About">
 defineProps(['id','title','content'])
  </script>

完整代碼如下

<template>
    <ul class="news-list">
      <li>編號(hào):{{ id }}</li>
      <li>標(biāo)題:{{ title }}</li>
      <li>內(nèi)容:{{ content }}</li>
    </ul>
  </template>
    
  <script setup lang="ts" name="About">
 defineProps(['id','title','content'])
  </script>
  
  <style scoped>
    .news-list {
      list-style: none;
      padding-left: 20px;
    }
  
    .news-list>li {
      line-height: 30px;
    }
  </style>

上面僅僅是第一種寫法,大概意思就是將路由收到的所有params參數(shù)作為props傳給路由組件

props的第二種寫法

這種寫法是使用函數(shù)的形式

props(route){
            return route.params
          }

當(dāng)然也是可以使用query的

props(route){
            return route.query
          }

但是使用query別忘了修改點(diǎn)地方

事實(shí)證明,也是可以實(shí)現(xiàn)的

props的第三種寫法

第三種寫法是對(duì)象寫法

  • 對(duì)象寫法相對(duì)于函數(shù)寫法更加靜態(tài),因?yàn)樗苯訉⒐潭ǖ闹祩鬟f給組件屬性,無法根據(jù)路由的動(dòng)態(tài)變化來改變傳遞的值。
  • 而函數(shù)寫法可以根據(jù)需要?jiǎng)討B(tài)地返回不同的屬性值,更加靈活。
  • 因此,在需要根據(jù)路由動(dòng)態(tài)變化屬性值的情況下,使用函數(shù)寫法更加合適;而在屬性值固定的情況下,使用對(duì)象寫法可能更為簡(jiǎn)潔明了

就是較為固定,如果想動(dòng)態(tài)還是函數(shù)比較好

總結(jié)

通過合理配置路由規(guī)則的 props 屬性,可以使路由參數(shù)更加靈活地傳遞給組件。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue下載不同文件的幾種方式總結(jié)

    Vue下載不同文件的幾種方式總結(jié)

    在Vue項(xiàng)目中實(shí)現(xiàn)文件下載有多種方式,包括使用window.open、<a>標(biāo)簽、axios、FetchAPI、自定義$download方法以及創(chuàng)建a標(biāo)簽等,每種方法都有其適用場(chǎng)景,開發(fā)者可以根據(jù)項(xiàng)目需求選擇最合適的方式
    2025-01-01
  • Jenkins?Sidebar?Link插件實(shí)現(xiàn)添加側(cè)邊欄功能詳解

    Jenkins?Sidebar?Link插件實(shí)現(xiàn)添加側(cè)邊欄功能詳解

    這篇文章主要介紹了vue框架實(shí)現(xiàn)添加側(cè)邊欄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • vue的el-select綁定的值無法選中el-option問題及解決

    vue的el-select綁定的值無法選中el-option問題及解決

    這篇文章主要介紹了vue的el-select綁定的值無法選中el-option問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue使用input封裝上傳文件圖片全局組件的示例代碼

    vue使用input封裝上傳文件圖片全局組件的示例代碼

    實(shí)際開發(fā)過程中,我們經(jīng)常遇見需要上傳文件圖片功能,可以封裝一個(gè)全局組件來調(diào)用,這篇文章給大家介紹vue使用input封裝上傳文件圖片全局組件,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • Vue表單驗(yàn)證插件Vue Validator使用方法詳解

    Vue表單驗(yàn)證插件Vue Validator使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Vue表單驗(yàn)證插件Vue Validator使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • vue.js實(shí)現(xiàn)標(biāo)簽頁切換效果

    vue.js實(shí)現(xiàn)標(biāo)簽頁切換效果

    這篇文章主要介紹了vue.js實(shí)現(xiàn)標(biāo)簽頁切換效果,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • vue添加錨點(diǎn),實(shí)現(xiàn)滾動(dòng)頁面時(shí)錨點(diǎn)添加相應(yīng)的class操作

    vue添加錨點(diǎn),實(shí)現(xiàn)滾動(dòng)頁面時(shí)錨點(diǎn)添加相應(yīng)的class操作

    這篇文章主要介紹了vue添加錨點(diǎn),實(shí)現(xiàn)滾動(dòng)頁面時(shí)錨點(diǎn)添加相應(yīng)的class操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue?內(nèi)置指令梳理總結(jié)

    Vue?內(nèi)置指令梳理總結(jié)

    這篇文章主要介紹了Vue?內(nèi)置指令梳理總結(jié),文章首先從v-text指令展開內(nèi)容介紹,具有一定的知識(shí)性參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • vue3中的ref、reactive問題解析

    vue3中的ref、reactive問題解析

    ref 和 reactive都是vue3推出的針對(duì)組合式設(shè)計(jì)的聲明響應(yīng)式狀態(tài)的API,兩者在使用之前都要先進(jìn)行引入,本文通過實(shí)例代碼詳解vue3中的ref、reactive問題,感興趣的朋友一起看看吧
    2024-03-03
  • vue+elementUi 實(shí)現(xiàn)密碼顯示/隱藏+小圖標(biāo)變化功能

    vue+elementUi 實(shí)現(xiàn)密碼顯示/隱藏+小圖標(biāo)變化功能

    這篇文章主要介紹了vue+elementUi 實(shí)現(xiàn)密碼顯示/隱藏+小圖標(biāo)變化功能,需本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評(píng)論