vue 頁面跳轉(兄弟元件)通過路由或vuex 進行傳遞引數,並且實現重新整理資料不消失
用vue搭建整個前端頁面,需要實現一個資訊列表的顯示,當點選某一項時,跳轉到另外一個頁面顯示具體的資訊詳情。那麼像這種兄弟之間的頁面如何傳遞參呢?
我們都知道在 Vue.js 的專案中,如果專案結構簡單,父子元件之間的資料傳遞可以使用 props 或者$emit 等方式。
那麼我就可以先將A子元件將資料傳遞到父元件,然後父元件在傳遞給B子元件,這樣傳遞肯定是沒問題的,但是這樣寫下來就變得複雜了。
下面看一下簡單的傳遞方式
一.頁面跳轉通過路由帶引數傳遞資料(假設A要傳遞引數id到頁面B 且B的路由是path和name都為 ‘AgentMsg’ )
// 1.A頁面中的程式碼
this.$router.push({{name: 'AgentMsg '}, params: {id: id}})
或者通過
this.$router.push({{path: 'AgentMsg'}, query: {id: id}})
// 2.B頁面的路由資訊
{
path: 'AgentMsg',
name: 'AgentMsg',
component: AgentMsg
}
// 3.B頁面中的程式碼
let id = this.$route.params.id
和 A頁面中的 params和query保持一致
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1 7
通過query傳遞引數,頁面重新整理後,資料不會消失。但是params重新整理後會消失。
通過params傳遞引數,也可以做到重新整理後,資料不消失。 將要傳遞的資訊寫到B頁面的路由path裡邊就可以了。這時候位址列url的後面會跟上這個傳遞的引數,重新整理不會消失。// 2.B頁面的路由資訊 { path: 'AgentMsg/:id', name: 'AgentMsg', component: AgentMsg}
二.使用vuex進行資料傳遞
如果沒有安裝vuex ,通過命令列: npm install vuex --save 進行安裝然後在 main.js 中引入並在Vue例項中注入
import Vuex from 'vuex'
import store from './store/store'
new Vue({ el: '#app',store,.....還有其他的一些元件模板等)
構建核心倉庫store.js
Vuex 應用的狀態 state都應當存放在store.js 裡面,Vue 元件可以從 store.js 裡面獲取狀態,可以把 store 通俗的理解為一個全域性變數的倉庫。
但是和單純的全域性變數又有一些區別,主要體現在當 store 中的狀態發生改變時,相應的 vue 元件也會得到高效更新。
在 src 目錄下建立一個 vuex 目錄,將 store.js 放到 store 目錄下
store.js 中:
import Vuex from 'vuex'
import Vue from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state:{
id: ' '
},
mutations:{
setId(state , id) {
state.id = id
}
}
})
傳遞方法:
A介面改變store中state裡的引數:
1、可以通過直接賦值的方法進行改變 this.$store.state.id = (要傳遞的引數id)
2、官方建議的修改方法: this.$store.commit( 'setId' ,(要傳遞的引數id) )
B介面接收變化資料引數:
this.$store.state.id
但是通過 vuex這樣寫,頁面重新整理之後,資料也會消失。它只是對變數提升。
如果不想資料重新整理消失,就把資料儲存到Local Storage或者Session Storage或者本地儲存庫中。
三.使用web storage進行資料傳遞
以Local Storage為例:
將id引數一’id‘ 這個name 存進localStorage
localStorage.setItem('id' , id)
讀取的時候:
var readId = localStorage.getItem('id')
相關推薦
vue 頁面跳轉(兄弟元件)通過路由或vuex 進行傳遞引數,並且實現重新整理資料不消失
用vue搭建整個前端頁面,需要實現一個資訊列表的顯示,當點選某一項時,跳轉到另外一個頁面顯示具體的資訊詳情。那麼像這種兄弟之間的頁面如何傳遞參呢?我們都知道在 Vue.js 的專案中,如果專案結構簡單,
vue 頁面跳轉。路由配置
//當觸發一個按鈕,發生跳轉 applyDetail(index) { //路由跳轉 this.$router.push({ path: "/huaxiainsuranceApplyDetail",//目標地址,vue的跳轉需要單獨的配置 query: { //跳轉攜帶的引數
Vue頁面跳轉$router.push 的用法
clas 有時 img bsp path his 其他 過程 頁面 vue2.0在使用的過程中, .vue文件之間的跳轉,在template中的常見寫法是: <router-link to="/miniCard/statement/horizon">
Vue頁面跳轉保留資料
直接上程式碼 const router = new VueRouter({ // 2. 定義路由 routes:[{ path: '/cashier', component: Page1, meta: { keepAlive: tr
vue頁面跳轉與傳值
跳轉 #<script> this.$router.push({path:'/index'}) #template <button @click="goToHome">首頁</button> #實用router-link <router-link
VUE 頁面跳轉
關於VUE中的頁面跳轉的幾種方式 1.通過Vue的router做頁面跳轉,demo如下: this.$router.push({ name: "worksheet_detail", params: { worksheetId: this.worksheetId } });
vue頁面跳轉攔截器
登入攔截邏輯 第一步:路由攔截 首先在定義路由的時候就需要多新增一個自定義欄位requireAuth,用於判斷該路由的訪問是否需要登入。如果使用者已經登入,則順利進入路由, 否則就進入登入頁面。在路由管理頁面新增meta欄位 import Vue from 'vue'
vue 頁面跳轉 傳遞陣列
傳參: this.$router.push({name: 'release', query: {name: this.benefitsArr}}); //這是關鍵程式碼 接收引數: this.$route.query.name; //這是關鍵程式碼 需要注意的
vue頁面跳轉
第一步在.vue元件裡新增標籤,格式如下 <div id="app"> <p> <!-- 使用 router-link 元件來導航. --> &l
vue頁面跳轉引數傳遞
前段時間專案用vue搭建整個前端頁面,我負責的模組有個地方在頁面跳轉時得將引數傳遞到下一個頁面,但是由於引數較多,用url帶引數傳遞不是特別好,我嘗試了多種方法想在頁面之間傳遞引數都沒成功,最後想到了vuex,當時又是剛開始學vue對vuex更是瞭解不多廢了一點
vue頁面跳轉傳值
play win created table 詳情 seq color use ESS 第一種方式:例:消息列表頁跳轉: methods: { goTo(){ this.$router.push({ name:‘/My/Info‘,
生產環境,vue頁面跳轉的時候,js報404的問題
location ams ring webpack 懶加載 vue ati 錯誤 load() 最近上線的一個vue項目,需要各種路由跳轉,在開發和測試環境都沒問題,但是在生產環境,發現後期更新代碼的時候,有些機型(ios機型,暫未發現android有問題)跳轉路由的時候,
vue踩坑筆記03---路由的作用,頁面跳轉
vue踩坑筆記03---路由的作用,頁面跳轉 無引數跳轉: 使用路由標籤跳轉: 通過路由路徑跳轉: 通過路由名稱跳轉: 使用使用methods跳轉: 有引數跳轉: 使用路由標籤
vue使用路由進行頁面跳轉時傳遞引數
本文主要介紹了vue中使用路由進行頁面的跳轉時,vue的路由如何傳遞引數,第二個頁面如何獲取引數. 一. 通過router-link進行跳轉 <router-link :to=
AngularJS路由實現單頁面跳轉
href vid 左邊欄 ref 按順序 -1 生活用品 func 為我 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <titl
Vue + ElementUi 頁面跳轉傳值的方法
element info vue 跳轉 body 9.png 分享圖片 nbsp .com 跳轉的頁面(接收): 跳轉的頁面(接收): Vue + ElementUi 頁面跳轉傳值的方法
Vue-Vue-router跳轉頁面時返回頂部
pre 創建 brush AC osi next 通過 clas out 第一種方法:main.js router.afterEach((to,from,next) => { window.scrollTo(0,0); }); 第二種方法: 在創
Vue 爬坑之路(三)—— 使用 vue-router 跳轉頁面
cli 分類 ace local outer log 適合 創建 start 使用 Vue.js 做項目的時候,一個頁面是由多個組件構成的,所以在跳轉頁面的時候,並不適合用傳統的 href,於是 vue-router 應運而生。 官方文檔: https://router.v
vue從一個頁面跳轉到另一個頁面並攜帶引數
1.需求: 點選商場跳轉到商業體列表 解決方案: 元頁面: a標籤中新增跳轉函式 <a class="orderBtn1 sIRicon2" href="javascript:void(0);" @click="toMal
vue-router 跳轉頁面傳遞引數並獲取引數
一、跳轉頁面 有些時候我們從A頁面跳轉到B頁面需要傳遞一個或多個引數,例如從列表頁進入詳情頁 程式碼: <router-link :to="{path:'/detail',query:{id:item.id,a:1}}">