做單頁應用,路由跳轉時我要把引數帶在URL上,產品經理說要放 window 下面帶過去,我該怎麼解釋?

時間 2021-05-11 23:28:27

1樓:雲天明

在我的理解中,前後端通過HTTP進行的通訊基本只有四種方式吧,GET/PST/PUT/DELETE

而這個題目的問題,其實是,url引數 vs request body吧

url引數的特點是,誰都看得到,瀏覽器歷史記錄直接點就可以喜加一,四種方法通用,長度限制

用請求體的話,GET沒有請求體,不能直接看到,喜加一比較麻煩,如果人家想喜加一的話依然是可以的,想寫啥寫啥因為是contentLength控制的

所以其實我覺得,如果傳遞的東西比較小的話,沒人規定不能用url引數,除非有很好的用POST&request body的理由

2樓:下羊

不想當程式設計師的產品經理不是好設計師,哈哈。

如果這個ID是持久化的就應該放到url裡面,要不然重新整理一下頁面或者分享頁面都會掛掉。

如果這個ID只是乙個臨時狀態,就應該放在全域性,但不建議放到window下,可以考慮redux之類的狀態管理。

3樓:learnshare

產品經理也兼職技術方面的工作麼?或許需要請乙個技術經理來壓陣了。

雖然是單頁應用,但跳轉頁面(URL)並傳遞引數的功能依然需要將附加資訊寫到 URL 中,這樣新頁面的 URL 就是永久的。

比如使用者訪問知乎的這個問題頁面 http://

,單頁應用中 URL 可能寫成 #/question/[questionId] 或 ?question=[questionId],這樣瀏覽器在訪問這個 URL 時可以直達目標頁面。

如果把 questionId 引數寫到 window 中,讓使用者在開發者工具中輸入 window.question=[questionId] 來訪問?

當然,這種方式僅限跳轉新頁面,且該動作是冪等 冪等 的情況。

另一種情況是做非冪等操作,比如新增物品到購物車,操作完成後開啟購物車頁面。這種操作不應該簡單地通過 URL 實現(如 #/cart?item=[itemId]&quantity=2),否則每次訪問這個 URL,都會往購物車中新增兩個同樣的物品。

注意,這個新增物品到購物車的操作也不應該簡單地通過 window 傳引數來實現。window 上就不該新增什麼東西上去,readonly 比較好。

4樓:

放在windows下面帶過去是個什麼意思。Session?Cookie?總有個理由吧。放在url上面是為了方便。不放url是為了什麼?

5樓:趙嘉楠

既然你們做的是單頁應用,應該用框架吧,比如說vue、ng,如果用了的話,用window傳參,真的就是乙個很傻的行為。如果沒用或者是公司自己封裝的,那就根據封裝的套路玩就好,window傳參,被汙染了,誰都不知道,而且f12直接就能檢視

順帶提一句,如果你們的產品和架構是乙個,那就考慮跳槽吧。

不是的話,技術方面的問題,讓產品經理,有多遠滾多遠。

6樓:

要麼解釋清楚,要麼乙個字。就是幹。引數不多的情況下,肯定url帶過去。引數非常多非常大的話?我還真不知道怎麼傳。掛window盡量少用

少跟外行斯比。少跟外行斯比。少跟外行斯比。

單頁應用等同於區域性重新整理嗎???

yangcheng 我就不講技術細節了,網上很多文章你可以查。簡單來說,就好比你上面做的筆記,假設你是用鉛筆寫的,然後可以擦掉重新寫。單頁應用也類似,在首次渲染的頁面,如果跳轉其它頁面,瀏覽器就類似做了擦掉這個頁面,紙張還在,重新渲染新的頁面。 胡鴻飛 說的沒錯,現在的單頁應用本質上完完全全就是以前...

前端react單頁應用專案太大,導致開發環境編譯過慢,有什麼解決思路麼?

失禮 既然限定了是單個應用,那就用 federation 拆一下。如果你能說服業務方改變選單路徑甚至是互動層級,那麼乾坤也可以,但是不同於多應用整合場景,拆乙個到多個其實還是有髒活累活的。所以,用 federation 比較合適。如果你願意折騰還可以做按需編譯,這個方式不需要用微前端拆解,但是打包還...

vue單頁應用在筆記本win10 ie瀏覽器很卡,請求也很慢。?

你是本地開發嗎?把所有資源嘗試放到本地,然後看會好一些嗎?如果還是卡就是IE與其他瀏覽器不同,如果有改善就在資源載入這下功夫。 axel10 你說的vender是指build.js嗎?如果是的話你應該在webpack.config.js裡配置externals,再利用cdn來減小體積。vue專案中用...