vue-cli でレスポンシブ レイアウトを実装する方法

vue-cli でレスポンシブ レイアウトを実装する方法

フロントエンド開発を行うと、PCとモバイル端末の適応に必然的に直面することになります。このような問題に直面して、一部の企業はモバイルはモバイル、PCはPCの2つのページを用意し、レスポンシブレイアウトはユーザーの異なるモデルに応じて異なるページを表示します。これ以上面倒なことはせずに、コードを貼り付けるだけです。

まず、この機能は vuex を利用して実装されています。まだダウンロードしていない場合は、まずダウンロードしてください。

糸を追加するvuex

レスポンシブレイアウトなので、PC側用のCSSとモバイル側用のCSSの2セットを用意する必要があります。 とりあえず、PC側をコンピュータスタイル、モバイル側をモバイルスタイルと呼ぶことにします。

まず最初にやるべきことは、現在の画面の幅です

州: {
  画面幅: document.documentElement.clientWidth、
  画面の高さ: document.documentElement.clientHeight
 }

これはvuexの状態です。後で画面の幅をリアルタイムで監視するため、screenWidthを変更するメソッドも用意する必要があるため、別のミューテーションを書きました。

突然変異:
  setWidth(状態, 値) {
   state.screenWidth = 値
  },
  setHeight (状態、値) {
   state.screenHeight = 値
  }
 }

このようにして、vuexファイルが書き込まれ、APP.vueになります。このファイルの下にwindow.onresizeイベントを追加して、vuexのscreenWidth値をリアルタイムで更新する必要があります。ここでは、補助関数を使用します。

'vuex' から { mapState, mapMutations } をインポートします。

マウントされたフック関数にイベントを追加する

マウントされた(){
  ウィンドウのサイズ変更 = () => { 
   this.setWidth(document.documentElement.clientWidth) 
  }
}

例えば、ウェブページのナビゲーションはモバイルでは下部、PCでは上部に表示する必要があるので、watchまたはcomputedを使用してnav.vueコンポーネントのscreenWidthの値を監視することができます。ここではcomputedを使用します。

<ul :class="computedPhone">//screenWidth に応じて異なるクラス名を指定します<router-link to='/file' tag="li" active-class="active">Movie</router-link>
   <router-link to='/cinma' tag="li" active-class="active">映画</router-link>
   <router-link to='/center' tag="li" active-class="active">パーソナルセンター</router-link>
</ul>

計算: {
  ...mapState('スタイルシート', ['画面幅']),
  計算された電話() {
   (this.screenWidth < 1024)の場合{
    'モバイル'を返す
   } それ以外 {
    'コンピュータ'を返す
   }
  }
 }

このように、2セットのCSSを記述することでレスポンシブレイアウトを実現できます。

これで、vue-cli でレスポンシブ レイアウトを実装する方法に関するこの記事は終了です。vue-cli レスポンシブ レイアウトに関する関連コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueは配列とオブジェクトの値をレスポンシブに追加および変更します
  • Vueのレスポンシブ原則についての簡単な説明
  • Vue.set() メソッドを使用して、配列データステップのレスポンシブな変更を実装します。
  • Vue のイベント対応プログレスバーコンポーネントの詳細な例
  • Vueでレスポンシブシステムを実装する方法
  • Vue3.0 レスポンシブ システムのソース コードの行ごとの分析
  • Vueのレスポンシブ原則の詳細な説明
  • JSを使用してVue実装ページの入力値をレスポンシブに変更する
  • Vue のデータ応答性の原理についての簡単な説明

<<:  Linux (Ubuntu 18.04) に Anaconda をインストールする詳細な手順

>>:  原因不明のMySqlサービス消失の解決策

推薦する

Gojs がアリのラインアニメーション効果を実装

目次1. Gojsの実装1. 描画2. 破線の実装3. 点線を動かす2. 点線と点線アニメーションの...

JDBC を使用して MySQL を操作するための簡単な分析では、Class.forName("com.mysql.jdbc.Driver") を追加する必要があります。

導入データベースに接続するためにJDBCを使用することに慣れている場合は、データベースに接続するため...

vite を使用して vue3 アプリケーションを構築する方法

1. インストールヒント: 現在、VUE3.0 の公式翻訳ドキュメントはありません。しかし、すでに誰...

Linux での MySQL の文字化け問題の解決方法

プロジェクトはサーバーと対話し、post を通じてサーバー側の jsp にアクセスし、jsp はサー...

C++ TpeScriptシリーズのジェネリックについて

目次1. テンプレート2. ジェネリック3. ジェネリック再帰4. デフォルトのジェネリックパラメー...

MySQLのorder byとlimitを混在させる際の落とし穴の詳細な説明

MySQL では、ソートには order by を、ページングには limit をよく使用します。最...

MYSQLストアドプロシージャコメントの詳細な説明

目次1. 使用方法2. 準備3. 文法3.1 変数と代入3.2 入力および出力パラメータ3.3 プロ...

Alipay の Java 決済インターフェースを開発するための詳細な手順

目次最初のステップステップ2ステップ3ステップ4 Alipay 決済インターフェースへの接続に関する...

DockerコンテナでのMySQLデータのインポート/エクスポートの詳細な説明

序文MySQL データのインポートとエクスポートは mysqldump コマンドで解決できることは誰...

Mysql の遅いクエリ操作の概要

MySQL の遅いクエリの説明MySQL スロー クエリ ログは、MySQL が提供するログ レコー...

Chrome タブバーを実装するための CSS のヒント

今回は、Google Chrome のタブバーのような、特殊な丸い角を持つナビゲーション バーのレイ...

JavaScriptはボタンをクリックして4桁のランダムな検証コードを生成します

この記事の例では、ボタンをクリックすることで4桁のランダムな検証コードを生成するjsの具体的なコード...

Vue で棒グラフを使用し、自分で設定を変更する方法

1. HTMLファイルでechartをインポートする <!-- echarts をインポート ...

擬似静的およびクライアント適応型 Nginx の設定方法

バックエンドは thinkphp3.2.3 フレームワークを使用します。他の言語を使用している場合は...

ページ切り替え効果を作成するための純粋な CSS3 のサンプルコード

前に書いたものは複雑すぎるので、シンプルなコアにしましょう <html> <ヘッド...