国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

在vue中實現(xiàn)簡單頁面逆?zhèn)髦档姆椒?/h1>
2019-11-19 14:51:55
字體:
供稿:網(wǎng)友

【需求】

  要實現(xiàn)的需求很簡單,頁面從A -> B,用戶在B觸發(fā)操作,將一些數(shù)據(jù)帶回到A頁面,在網(wǎng)上找了好久也只看到有人問,但總找不到很好答案。要實現(xiàn)的效果圖如下:

【聯(lián)想】

  在 ios 開發(fā)中,頁面跳轉(zhuǎn) A -> B -> C,到 C 頁面后,內(nèi)存中一直存儲著 A 和 B 頁面的數(shù)據(jù)和狀態(tài),通過導(dǎo)航堆棧遍歷數(shù)組可以拿到之前的頁面進行修改賦值等,另外還有代理,block傳值等操作。  

  vue是一個單頁應(yīng)用,輕量,并且不會重復(fù)下載數(shù)據(jù)。當它從一個頁面跳轉(zhuǎn)到另一個頁面時,原來的頁面的vue實例和相關(guān)數(shù)據(jù)已經(jīng)銷毀了,要實現(xiàn)逆?zhèn)髦稻鸵业讲僮鞯膶ο蠹八囊恍傩浴?/p>

【嘗試】

  在 three 頁面中打印路由相關(guān)信息,如下:

  本來是想在其對象中查看是否有可操作的對象,但發(fā)現(xiàn)都不好操作甚至太麻煩,并不像 ios 中一樣。然后嘗試對其中一些對象 prototype 或 __proto__ 主動添加想要存儲的數(shù)據(jù),實際結(jié)果也是要么報錯不通過,要么路由切換時數(shù)據(jù)就沒了。

  這兩天又重新看了看vue的官網(wǎng)指導(dǎo),發(fā)現(xiàn)除了全局路由有對應(yīng)的時機方法,對于組件路由也有幾個對應(yīng)的鉤子函數(shù)。

  在第三個頁面中實現(xiàn) beforeRouteLeave,打印對應(yīng)的參數(shù)發(fā)現(xiàn)確實可以拿到前后路由。如下:

【相關(guān)代碼】

  /three 頁面中的 input 與變量 selVal 綁定,然后在此頁面的路由方法中,判斷如果是回第二個頁面,則將要傳的參數(shù)賦值到對應(yīng)query 或 params中,params 中的數(shù)值如果用戶刷新當前頁面參數(shù)值會丟失,而query則是拼接在 url 后面,刷新頁面值也不會丟失。如下:

 beforeRouteLeave(to, from, next) {  if (to.name == 'Two') {   to.query.temp = this.selVal;  }  next(); }

  在 /two 頁面的 mounted 方法中獲取相應(yīng)的值

 mounted() {  if (this.$route.query.temp) {   this.temp = this.$route.query.temp;  } }

  這樣就完了,真想說句靠,怎么原來就沒發(fā)現(xiàn)呢,之前實現(xiàn)這些還想著 keepalive 或使用 vuex 等等,想想那樣麻煩多了。

  ps: 這種簡單的逆?zhèn)髦凳沁@樣實現(xiàn)沒錯,但如果 /two 頁面在進入 /three 頁面之前用戶進行了大量臨時性操作,到 /three 頁頁回來還需要繼續(xù)保持這些大量的操作就比較困難了,這個就等下期博客貼出來了。

總結(jié)

以上所述是小編給大家介紹的在vue中實現(xiàn)簡單頁面逆?zhèn)髦档姆椒ǎM麑Υ蠹矣兴鶐椭绻蠹矣腥魏我蓡栒埥o我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

主站蜘蛛池模板: 久治县| 南汇区| 江城| 南昌市| 青冈县| 三原县| 新宾| 临沧市| 昌吉市| 陕西省| 兰州市| 拉孜县| 揭东县| 沈丘县| 金华市| 新密市| 乡宁县| 遵义市| 包头市| 临泽县| 宣化县| 蓬莱市| 大方县| 莒南县| 湘潭市| 钦州市| 丰都县| 榆中县| 沂水县| 阳城县| 江川县| 松潘县| 清徐县| 滦南县| 谢通门县| 晋州市| 巴青县| 库尔勒市| 砀山县| 潜江市| 齐河县|