params 和 query 傳參的區別
很多人都知道params 和 query 都可以在頁面跳轉的時候傳遞參數。
query更加類似於我們ajax中get傳參,params則類似於post,說的再簡單一點,前者在瀏覽器地址欄中顯示參數,後者則不顯示
最近有一個需求,比如詳情頁,要求按F5刷新完後數據還是能正常展示,詳情頁是在created後用ID請求。
如果是用query 傳遞過來的id,在this.$route,上會一直存在。
但是如果用params的時候,如果不做別的配置,直接在路由跳轉的時間加params,F5刷新數據可能就不存在了。
如果一定要用params也可以,在router文件的 path 後面 + “/:id”,這樣頁面F5刷新後ID還是在router中。
如果是單獨的詳情頁這樣也是可以的,但是如果新增和編輯都是跳轉同一個路由呢,這樣就會報錯了,因為編輯要請求詳情,就需要ID,但是新增的時候是沒有ID的
這時候就需要 path 後面 + “/:id?”,也就是id後面加一個“?”,和正則的意思一樣,可有可無。這樣就不會報錯了。
個人還是建議用 query ,因為它不需要改變 path規則。
params 和 query 傳參的區別
相關推薦
params 和 query 傳參的區別
的區別 頁面跳轉 數據 傳參 如果 要求 不存在 個人 path 很多人都知道params 和 query 都可以在頁面跳轉的時候傳遞參數。 query更加類似於我們ajax中get傳參,params則類似於post,說的再簡單一點,前者在瀏覽器地址欄中顯示參數,後者則
vue params和query傳參的用法和區別
this.$router.push({ name:"detail", params:{ name:'nameValue', code:10011 } }) this.$router.push({ path:"/detail", query:{
Vue Router 的params和query傳參的使用和區別(詳盡)
首先簡單來說明一下$router和$route的區別 //$router : 是路由操作物件,只寫物件 //$route : 路由資訊物件,只讀物件 //操作 路由跳轉 this.$router.push({ name:'hello',
vue路由跳轉時傳參params和query的區別
其實是很簡單的問題,不過還是踩坑了,在這裡說下 1.params傳參,用name屬性對應跳轉路徑,類似於post提交,引數不會出現在跳轉路徑裡。 <router-link :to="{ name:'cityList' ,params :{cityId:scope.row.id} }"&
vue-router中 query傳參和params傳參的區別和注意事項
1.query傳參: 1.query傳參 路由: var router = new VueRouter({ routes: [ { path: '/login', component: login }, { name:'regi
Node params和query的Get請求傳參
框架 http 添加屬性 創建 amp app console uid type //1:加載http express框架//2:創建服務器const http = require("http");const express = require("express");var
vue.js路由的幾種傳參方式及特點,包括router-link,$router.push,動態路由匹配,params和query
最近vue用的比較多,就想對各種知識做一個小結,比如這個就是路由導航的一個小總結。具體內容如下: 一、<router-link> <router-link>標籤中的to屬性用來指定路由路徑。 to的型別:string | Location
vue的params和query兩種傳參方式及URL的顯示
路由配置: // 首頁 { path: '/home', name:'home', component:Home }, // 行情 { path: '/markets', name:'market', co
HTTP中post和get傳參的區別
插一下別的知識:HTTP的請求方式 HTTP一共有8中請求方式:1.OPTIONS 2.HEAD 3.GET 4.POST 5.PUT 6.DELETE
router中的params和query的區別
const routes = [ { name: 'users', path: '/users/:id', component: Users }, { path: '/books', component: Books } ] // params使用場景 router.push('/users/123')
測試在vue下點選事件傳參和不傳參的區別
<div id = 'app'> <p><button @click = 'test_click1'>{{btn_text1}}</button></p> <
vue 中params 和query的區別
params和query都是為了傳遞引數 params: 只能用name引入路由傳參 第一次使用時犯的錯誤 將name寫成path 導致相應頁面獲取不到資料(以下是錯誤寫法); 而query則是用path引入路由傳參 1.使用params傳參引數不會出現
scrapy框架之日誌等級和請求傳參
一.Scrapy的日誌等級 - 在使用scrapy crawl spiderFileName執行程式時,在終端裡列印輸出的就是scrapy的日誌資訊。 - 日誌資訊的種類: ERROR : 一般錯誤 WARNING : 警告 INFO : 一般
AJAX中get和post傳參知識點
AJAX中XMLHttpRequest以非同步方式的處理程式的特點: 1、建立非同步物件 var xhr = new XMLHttpRequest(); 2、設定請求報文 xhr.open() 發起請求,可以是get、post方式 xhr.setRequestHead
5----scrapy框架之日誌級和請求傳參
一、Scrapy的日誌等級 在使用scrapy crawl spiderFileName執行程式時,在終端裡列印輸出的就是scrapy的日誌資訊。 日誌資訊的種類: ERROR : 一般錯誤 WARNING : 警告 INFO : 一般的資訊 DEBUG : 除錯資訊 預設的
MySql儲存過程中傳參和不傳參以及java中呼叫程式碼
資料庫表結構 1.mysql不傳參寫儲存過程 create procedure product() -- product為儲存過程名稱 begin select * from book; end 呼叫此儲存過程為 CALL product
Vue學習-- Vue Router 引數傳遞params和query
Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度整合,讓構建單頁面應用變得易如反掌。 方法一 param傳遞引數(get方式) getDescribe(id) { //直接呼叫$rou
Ajax和javascript傳參方式
js方法封裝入引數據 把js的以json形式傳參 {"sTitle":"操作","mData":"isReview","mRender":function(data,type,full){ &nb
13.scrapy框架的日誌等級和請求傳參
今日概要 日誌等級 請求傳參 如何提高scrapy的爬取效率 今日詳情 一.Scrapy的日誌等級 - 在使用scrapy crawl spiderFileName執行程式時,在終端裡列印輸出的就是scrapy的日誌資訊。 - 日誌資訊的種類: ERROR
Mybatis的處理引數原始碼分析和方法傳參取參分析
一、Mybatis中解析引數傳遞的原始碼分析 首先,當查詢資料庫語句mapper.getEmpByIdAndLastName(1, "tom");執行時,會呼叫Mybatis包中MapperProxy.invoke()方法,然後按照順序執行; 流程: 注:先進入Mybatis包中Mapp