私が実現したい機能は、新しいウィンドウを開いて新しいページを表示することですが、パラメータを渡す必要があり、パラメータをアドレスバーに表示することはできません。さらに、ページを更新しても、渡されたパラメータは失われず、新しいウィンドウ、つまりブラウザタブを手動で閉じない限り、常に存在する必要があります。 Baidu のプログラミングを通じて、オンライン コンテンツではこの効果はまったく得られず、落とし穴があることが分かりました。明らかに実現不可能ですが、あたかも事実であるかのように書かれています。そのため、タイトルに「画像があり、真実がある」とわざと付け加えました。私はあなたを騙しているわけではありません。その機能を実現できないのであれば、人を騙すために出てこないでください。 まずは私が作成したコードを書き出し、その後、他の人が実装できない落とし穴や、この点で注意する必要がある点を紹介します。 新しいウィンドウを開いてコードを渡す //新しいウィンドウを開いてパラメータを渡します。パラメータはアドレスバーに表示できません。ウィンドウが閉じられていない場合は継続的に更新されます。パラメータは常に有効です。handleWindow() { //主に新しいウィンドウを開く機能を実現する var route = this.$router.resolve({ 名前: 'Xterm', }) //主にパラメータを保存する機能を実装します sessionStorage.setItem("ip", "1.1.1.1"); window.open(route.href, '_blank') } 私のルーティング構成も掲載されています。 { パス: '/xterm', 非表示: true、 コンポーネント: () => import('@/views/monitor/xterm/index'), 名前: 'Xterm', }, これでページはパラメータを受け取ります //Vue 初期化メソッド。ページが初期化されたら、パラメータ created() を取得します。{ アラート(sessionStorage.getItem("ip")); this.ip = sessionStorage.getItem("ip") }, 真実の写真を投稿する これは、vue を通じて新しいウィンドウを開き、sessionStorage を通じてパラメータを渡すことによって行われます。なぜこの機能を実現するにはこの方法しか使えないのでしょうか? 落とし穴に足を踏み入れた私の体験をお話ししましょう。インターネット上で偽のコードを使って人を騙す悪人もいます。そのようなテストに耐えられないプログラマーはいるでしょうか? まず、この機能は新しいウィンドウを開く必要があるため、それを実行するには 3 つの方法があります。 最初の方法: 2 番目の方法: 3 番目の方法: ちなみに、vue2.0以降、普及が進むHTML5との整合性を保つため、router.goとrouter.pushは新しいウィンドウを開く属性をサポートしなくなりました。router.goは進むと戻るとして使用され、router.pushは特定のページへのガイドとして使用されます。このジャンプでは新しいウィンドウは開きませんが、履歴機能があります。1つのウィンドウに複数のタブがある場合は、図に示すようにこれを使用して複数のタブを開くことができます。 さて、router.resolve を使用すると、新しいウィンドウにジャンプできるので、パラメータを渡し始めますが、ここが難しいところです。オンライン転送によると、パラメータ転送には主に 2 つの種類があります。 //最初のパラメータをテストする testA (aaa) { const ルート = this.$router.resolve({ 名前: 'Xterm', パラメータ: { ip:aaa } }) window.open(route.href,'_blank') } //2番目のパラメータをテストする testA (bbb) { const ルート = this.$router.resolve({ パス: '/xterm', クエリ: { IP: bbb } }) window.open(route.href,'_blank') } 対応する受信パラメータは次のとおりです。 作成された() { //最初のアクセスパラメータをテストします this.ip = this.$route.params.ip // 2 番目のアクセス パラメータをテストします this.ip = this.$route.query.ip }, テストの結果、最初のタイプでは値を取得できないのに対し、2 番目のタイプでは渡されたパラメータの値がアドレス バーに公開されます。最初の方法では、あらゆる種類の特別な処理を実行しても、最良の結果は最初の値のみを取得することです。ページを再度更新すると、値は失われます。なぜこのようなことが起こるのでしょうか?ユーザーが行き詰まりを感じて更新ボタンをクリックしないことを誰が保証できるでしょうか? 自分でやるしかありませんでした。キャッシュを探して、localStorage と sessionStorage プロパティを見つけました。SessionStorage はデータを一時的に保存するために使用され、ウィンドウまたはタブを閉じると削除されます。localStorage は、Web サイト全体のデータを永続的に保存するために使用されます。保存されたデータには、手動で削除されるまで有効期限はありません。明らかに、sessionStorage で十分です。 これら 2 つの属性をサポートするブラウザのバージョンは次のとおりです。 この時点で、問題は実際に解決しました。実際、複雑ではありません。インターネット上の回答の質がまちまちなだけです。他の人が使用できるように記録しておきます。 要約する これで、Vue で新しいウィンドウを開いてパラメータを渡す方法についての記事は終了です。Vue で新しいウィンドウを開いてパラメータを渡す方法についての関連記事は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL 5.7.18 winx64 のインストールと設定方法のグラフィックチュートリアル
>>: win10 64 ビット システムに複数の JDK バージョンをインストールする際の切り替え問題と解決策の概要
スクリプトをデバッグモードで実行するbash -x <script> を使用すると、スク...
この記事の例では、VueがPCカメラを呼び出して写真機能を実現する具体的なコードを参考までに共有して...
1. Javascript は前のページ history.go(-1) に戻り、2 つのページを返し...
今回は、私自身の開発経験を踏まえて、以下の観点で関連内容を解説します。ページからコンポーネントにデー...
この記事では、MySQL 8.0.12のインストールチュートリアルを参考までに紹介します。具体的な内...
特定のインターフェースをリクエストするときに、指定されたテキスト文字列または JSON 文字列を返す...
目次1. 観察可能2. 高階関数3. エクスプレスボックスモデル3.1. エクスプレスボックスモデル...
ウェブサイト構築におけるカラーマッチングは非常に特殊であり、ウェブサイトのテーマ、感情、雰囲気などの...
この記事では、CSS 画像アニメーション効果(フォトフレーム)のサンプルコードを紹介し、皆さんと共有...
いくつかの理由(好奇心も含む)から、数週間前に Linux デスクトップとして Xfce を使い始め...
1. 現在のホスト名を表示する [root@fangjian ~]# ホスト名ctl 静的ホスト名:...
ブラウザはTIF形式の画像を表示しますコードをコピーコードは次のとおりです。 <html>...
最近、CSS3 と js の組み合わせを作成したのですが、z-index が有効にならないケースが多...
通常、清明節、国哀悼日、大地震の日、影響力のある偉人の死去または命日には、ウェブマスターとして、故人...
前面に書かれたMySQL をアップグレードする方法には、インプレース アップグレードと論理アップグレ...