最近、グループで小さなプログラムを開発しているときに、フロントエンドで決して変わっていないトピックに遭遇しました。それは、ページ値の受け渡しです。
問題を解決するためにパス パラメーターを使い始めたところですが、皆さんご存知のとおり、
各ブラウザの HTTP Get リクエスト URL の最大長は異なります。一般的に使用されるブラウザの最大長と、最大長を超えた場合の送信状況は次のとおりです。
IE6.0: URL の最大長は 2083 文字です。最大長を超えて送信することはできません。
IE7.0: URL の最大長は 2083 文字です。最大長を超えても送信できますが、渡せるのは 2083 文字までです。
firefox 3.0.3: URL の最大長は 7764 文字です。最大長を超えると送信できません。
Opera 9.52: URL の最大長は 7648 文字です。最大長を超えると送信できません。
Google Chrome 2.0.168: URL の最大長は 7713 文字です。最大長を超えると送信できません。
だから、頼りないと感じます。
公式ウェブサイトを調べた結果、これを「よりエレガントに」行う方法が 2 つあることがわかりました。もちろん、vuex/flux とは比較できません。
グローバル変数を使用する
プロジェクト内でapp.js
中定义globalData
App({ globalData:{ userInfo:'angeladaddy' } });
必要に応じて使用します:
getGlobalVar:function(){ var that=this; that.setData({ globalvar_str:JSON.stringify(getApp().globalData) }) }
もちろん、いつでも値を割り当てることもできます:
P aste_Image .png
onLoad:function(options){ getApp().globalData.userInfo+=' is an awesome man'; },ログイン後にコピー次に、テンプレートを使用します
is属性を使用して、使用する必要があるテンプレートを選択し、次のようなテンプレートで必要なデータを渡します。
- これにより、ページ値の転送の問題が解決されます。 「duang~~~」方法追記: 小さなプログラムはES6のすべての機能を使用できるため、var that=thisとは一体何ですか?スコープの問題を解決するためにアロー関数を使用できないのはなぜですか?戻ってもう一度試してください。
<template name="msgItem"> <view> <text> {{index}}: {{msg}} </text> <text> Time: {{time}} </text> </view> </template>ログイン後にコピーテンプレート データを表示する項目に値を割り当てます
<template is="msgItem" data="{{...item}}"/>ログイン後にコピー以上がWeChat ミニ プログラム ページで価値移転の小さな探求を共有しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。