vue路由對(duì)不同界面進(jìn)行傳參及跳轉(zhuǎn)的總結(jié)
最近在做一個(gè)公眾號(hào)的商城項(xiàng)目,主要用的VUE+MUI,其實(shí)今天這個(gè)點(diǎn)對(duì)于有過項(xiàng)目經(jīng)驗(yàn)的前端工作者來說是最基礎(chǔ)的,但也是必須要掌握的,今天小編主要是記錄下傳參和跳轉(zhuǎn)的一些總結(jié)(僅供參考)。
首先我們先上代碼吧!
<router-link :to="{path:'/editaddress',query:{ id:item.id }}"> <div class="top_left_center"> <img src="/static/images/details/location.png" alt="" class="location_img"> <span style="color:#f40;font-size:15px;">點(diǎn)擊編輯</span> </div> </router-link>
這個(gè)是我常用的傳參及跳轉(zhuǎn)路由的方法,下面剪短說一下這個(gè)代碼,在router-link中:to后面跟著的就是主角(跳轉(zhuǎn)、傳參)的內(nèi)容了,其實(shí)我們?cè)趶暮笈_(tái)拿到數(shù)據(jù)遍歷后,每一個(gè)對(duì)應(yīng)的id都會(huì)有,這里用的query:{id:item,id},其實(shí)就是把遍歷對(duì)應(yīng)的id傳到path
對(duì)應(yīng)的那個(gè)界面,這個(gè)常出現(xiàn)在列表頁到詳情頁頁這里(當(dāng)然不只是這里了,其他地方用的很多很多)。
對(duì)于傳參的方式還是要說下的多余的:
query和params:
a.像這種:to="{path:'/editaddress',query:{ id:item.id }}是query進(jìn)行傳值;這種:to="{path:'/editaddress',params:{ id:item.id }},兩種方式傳值沒什么差別,
但比如在詳情頁引入值時(shí)this.paramsid = this.$route.params.id ---->params引入;this.queryId = this.$route.query.Id---->query引入(當(dāng)然用name也行)
對(duì)于需要進(jìn)行安全保護(hù)的網(wǎng)站其實(shí)也可以在此處進(jìn)行選擇params-->name(不顯示路徑如index/login)--->當(dāng)然這只是相對(duì)query.-->path(顯示?后面帶的參數(shù)如index/login?id=1&&name=asd)安全的方法.
需要說明的這種方法在有的頁面刷新會(huì)丟失傳過來的數(shù)據(jù),就是不太穩(wěn)定。下面是另一個(gè)傳參的方法倒是可以解決這種問題,先看代碼:
request.get('shop/ce/' + this.product_id +'? num='+this.num ,{ id:this.product_id, num:this.num, }).then((response) => { if(response){ console.log(this.product_id) this.$router.push({path:'/order?pid='+this.product_id}) } }).catch((ex) => { console.log(ex.response) })
上面的request只是我封裝的一個(gè)axios請(qǐng)求方法(主要是方便,不多說),看紅線重點(diǎn),這個(gè)地方的傳參其實(shí)是很優(yōu)秀的,自己在定義一個(gè)變量接收id,因?yàn)槭菍懺谔D(zhuǎn)路徑里面的,這樣在刷新時(shí)人家會(huì)一直帶著這個(gè)ID,數(shù)據(jù)自然就不會(huì)丟失了,在需要接受ID的頁面用
this.product_id = this.$route.query.pid存一下就OK了。因此覺得這個(gè)方法挺好,需要多加注意。
既然說到這了,我們常用的其實(shí)還有抓取不同的id,傳給后臺(tái),常見的有點(diǎn)擊不同列表的商品獲取對(duì)應(yīng)的ID,這里我就說一下我用的方法(這個(gè)僅僅是記錄下)。
<div class="main" v-for="(item,index) in Unpaycontent" :key="index"> <div class="main_top"> <div class="imgContral"> <img :src="item.goods_image"> <div class="describtion"><a>待支付</a></div> </div> <div class="details"><p style="color:#000;">{{item.goods_name}}</p></div> <div class="main_topright"> <p>{{item.price}}</p> <p>×{{item.num}}</p> </div> <div class="top_bottom"> <span style="float:right;">合計(jì):<a style="color:red;">{{item.total_price}}</a></span> </div> </div> <div class="main_bot"> <a @click="click(item.id)">立即支付</a> </div> </div>
還是看紅線,因?yàn)槲覀冊(cè)邳c(diǎn)擊的時(shí)候傳的有item.id,這就解決了傳不同ID的頭疼問題,在methods里用方法接受時(shí)隨便定義下改個(gè)好看的名字就能很好的把ID拿出來傳到后臺(tái)了,為了展示的詳細(xì)點(diǎn),還是貼一下代碼吧。
getallData (index) { request.get('/shop/orders'+index, { }).then((response) => { }).catch((ex) => { }) },
這里的item.id就被我變成了index了,其他的就是愉快的給后臺(tái)解決了。
本文主要是對(duì)傳參進(jìn)行簡(jiǎn)短總結(jié)下,如果有其他的好的傳參的方法或者本篇我寫的有錯(cuò)的地方,歡迎指教!
以上所述是小編給大家介紹的vue路由對(duì)不同界面進(jìn)行傳參及跳轉(zhuǎn)的總結(jié)詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Vue項(xiàng)目?jī)?yōu)化的一些實(shí)戰(zhàn)策略
代碼優(yōu)化不僅僅局限在業(yè)務(wù)邏輯這塊,像是代碼復(fù)用、效率等等都是我們可以加以改進(jìn)的地方,這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目?jī)?yōu)化的一些實(shí)戰(zhàn)策略,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05詳解.vue文件中style標(biāo)簽的幾個(gè)標(biāo)識(shí)符
這篇文章主要介紹了詳解.vue文件中style標(biāo)簽的幾個(gè)標(biāo)識(shí)符,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07vue-cli3 取消eslint校驗(yàn)代碼的解決辦法
這篇文章主要介紹了vue-cli3 取消eslint校驗(yàn)代碼的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01vue2左側(cè)菜單欄收縮展開功能實(shí)現(xiàn)
vue2左側(cè)菜單欄收縮展開目前是非常常見的,我們?cè)谌粘i_發(fā)過程中經(jīng)常會(huì)碰到,這篇文章給大家介紹vue2左側(cè)菜單欄收縮展開功能,感興趣的朋友跟隨小編一起看看吧2024-04-04一次前端Vue項(xiàng)目國(guó)際化解決方案的實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于前端Vue項(xiàng)目國(guó)際化解決方案的實(shí)戰(zhàn)記錄,以上只是一部分Vue項(xiàng)目開發(fā)中遇到的典型問題和解決方案,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07Vue實(shí)現(xiàn)簡(jiǎn)單搜索功能的示例代碼
在vue項(xiàng)目中,搜索功能是我們經(jīng)常需要使用的一個(gè)場(chǎng)景,最常用的是在列表數(shù)據(jù)中搜索一個(gè)想要的,今天的例子就是我們實(shí)現(xiàn)vue從列表數(shù)據(jù)中搜索,希望對(duì)大家有所幫助2023-03-03ElementUI的this.$notify.close()調(diào)用不起作用的解決
本文主要介紹了ElementUI的this.$notify.close()調(diào)用不起作用的解決,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08