Vueの基本操作とCSS活用法

ここに記載する内容は、思いつくままに書きます。他の項目は後で追加します。また、いくつかのCSSも含まれています。

テキスト入力フィールドの双方向データバインディング

HTML

     <input value="123456" type="text" v-model="account" @input="handleAccountChange" class="bottom-line bottom" placeholder="アカウントを入力してください">

JavaScript

const account = ref('')
function handleAccountChange(event) {
  account.value = event.target.value;
  console.log(account.value, 'アカウント');
}

入力フィールドのクリック時の表示問題

入力フィールドがフォーカスされた際のアウトラインを無効にする

input:focus {
    outline: none;
}

検索アイコン付き入力フィールド

アイコンを左側に配置

<template>
  <input class="search-input" placeholder="検索...">
</template>

<style>
.search-input {
  background-image: url('/path/to/search-icon.svg'); /* 検索アイコンへのパス */
  background-position: right 10px center; /* アイコンの位置調整 */
  background-size: 20px; /* アイコンのサイズ調整 */
  background-repeat: no-repeat;
  padding-right: 35px; /* テキストがアイコンに被さらないようにする */
}
</style>

アイコンを右側に配置

Vueによるモバイルページでのダブルタップ拡大対策

metaタグを以下のように変更します

<meta name="viewport" content="width=device-width,initial-scale=1.0">

次のように修正します

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />

Vueにおけるマージンに関する問題

 <style>
    *{
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
  </style>

CSSグラデーションの応用

線形グラデーション(Linear Gradient)

線形グラデーションは、直線上で色を滑らかに変化させる効果です。

/* 上から下への垂直グラデーション */
.gradient {
    background: linear-gradient(to bottom, #ffcccc, #ff6666);
}

/* 左上から右下への斜めグラデーション */
.gradient {
    background: linear-gradient(to bottom right, #ffcccc, #ff6666);
}

放射状グラデーション(Radial Gradient)

放射状グラデーションは、中心から周囲へと広がるグラデーション効果です。

/* 中心から外に向かう放射状グラデーション */
.gradient {
    background: radial-gradient(circle, #ffcccc, #ff6666);
}

/* 左上から右下への放射状グラデーション */
.gradient {
    background: radial-gradient(ellipse at top left, #ffcccc, #ff6666);
}

ローカルストレージを使用した場合にオブジェクトになる理由

Vue 3において、localStorage.setItem('authToken', res)を使用すると、resがJavaScriptオブジェクトの場合、文字列に変換されて保存されます。もしresがオブジェクトであれば、その内容は[object Object]として保存され、期待される内容とは異なります。

保存する際には

localStorage.setItem('authToken', JSON.stringify(res));

読み込む際には

const authToken = JSON.parse(localStorage.getItem('authToken'));

Vue3でのページ遷移方法

コマンド

npm install vue-router@4

yarn add vue-router@4

<script setup>
import { useRouter } from 'vue-router';

const router = useRouter();

const goToHome = () => {
  router.push('/home'); // router.push を使用してホームページに移動
};
</script>

<template>
  <button @click="goToHome">ホームへ移動</button>
</template>

console.log(route.path); // 現在のルートパスを出力

// 動的ルーティングパラメータ
router.push({ name: 'user', params: { userId: '123' } });

// クエリパラメータ
router.push({ path: 'register', query: { plan: 'private' } });

タグ: Vue javascript CSS localstorage routing

6月10日 22:59 投稿