1. 程式人生 > >vue 頁面跳轉(兄弟元件)通過路由或vuex 進行傳遞引數,並且實現重新整理資料不消失

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}}">