検索
ホームページウェブフロントエンドVue.jsVue3の開発効率を上げる5つの豆知識【整理・共有】

この記事では、Vue3 開発について説明し、開発効率を向上させ、Vue3 プロジェクトの開発をスムーズにするための 5 つの豆知識を整理して共有します。

Vue3の開発効率を上げる5つの豆知識【整理・共有】

最近 Vue3 Vite2 をいじっていて、多くの問題に遭遇しました。開発効率を向上させ、Vue3 プロジェクト開発をより合理化できる 5 つのヒントをまとめました。 。

1. セットアップ名

Vue3setup 構文シュガーの強化は良いことですが、 # を使用してください##setup 構文によって引き起こされる最初の問題は、name をカスタマイズできないことです。keep-alive を使用する場合、多くの場合、解決するために name が必要になります。この問題は通常、2 つの script タグ (1 つは setup を使用し、もう 1 つは使用しない) を記述することで解決されますが、これは明らかに十分にエレガントではありません。

<script>
import { defineComponent, onMounted } from &#39;vue&#39;

export default defineComponent({
  name: &#39;OrderList&#39;
})
</script>

<script setup>
onMounted(() => {
  console.log(&#39;mounted===&#39;)
})
</script>

現時点では、プラグイン

vite-plugin-vue-setup-extend を利用することで、2 つの スクリプト#を書かなくても、この問題をよりエレガントに解決できます。 ## タグ。namescript タグに直接定義します。

#インストール

npm i vite-plugin-vue-setup-extend -D
#構成

// vite.config.ts
import { defineConfig } from &#39;vite&#39;
import VueSetupExtend from &#39;vite-plugin-vue-setup-extend&#39;

export default defineConfig({
  plugins: [
    VueSetupExtend()
  ]
})
<span style="font-size: 16px;"></span>

<script setup name="OrderList">
import { onMounted } from &#39;vue&#39;

onMounted(() => {
  console.log(&#39;mounted===&#39;)
})
</script>
<span style="font-size: 16px;"></span> 2. API 自動インポート

setup 構文を使用すると、変数を 1 つずつ保存できます。メソッドと

return

は、リリースされるとすぐにテンプレートで使用できるため、手が大幅に解放されます。ただし、refcomputedwatch など、一般的に使用される一部の VueAPI については、手動で設定する必要があります。毎回ページに表示されます。 import に進みます。 unplugin-auto-import を通じて自動インポートを実現でき、

import

を使用せずにファイル内で Vue API を使用できます。 #インストール

npm i unplugin-auto-import -D
<span style="font-size: 16px;"></span>構成

// vite.config.ts
import { defineConfig } from &#39;vite&#39;
import AutoImport from &#39;unplugin-auto-import/vite&#39;

export default defineConfig({
  plugins: [
    AutoImport({
      // dts: &#39;src/auto-imports.d.ts&#39;, // 可以自定义文件生成的位置,默认是根目录下
      imports: [&#39;vue&#39;]
    })
  ]
})
インストールと構成が完了しましたauto-imports.d.ts ファイルを自動的に生成します。
// auto-imports.d.ts
// Generated by &#39;unplugin-auto-import&#39;
// We suggest you to commit this file into source control
declare global {
  const computed: typeof import(&#39;vue&#39;)[&#39;computed&#39;]
  const createApp: typeof import(&#39;vue&#39;)[&#39;createApp&#39;]
  const customRef: typeof import(&#39;vue&#39;)[&#39;customRef&#39;]
  const defineAsyncComponent: typeof import(&#39;vue&#39;)[&#39;defineAsyncComponent&#39;]
  const defineComponent: typeof import(&#39;vue&#39;)[&#39;defineComponent&#39;]
  const effectScope: typeof import(&#39;vue&#39;)[&#39;effectScope&#39;]
  const EffectScope: typeof import(&#39;vue&#39;)[&#39;EffectScope&#39;]
  const getCurrentInstance: typeof import(&#39;vue&#39;)[&#39;getCurrentInstance&#39;]
  const getCurrentScope: typeof import(&#39;vue&#39;)[&#39;getCurrentScope&#39;]
  const h: typeof import(&#39;vue&#39;)[&#39;h&#39;]
  const inject: typeof import(&#39;vue&#39;)[&#39;inject&#39;]
  const isReadonly: typeof import(&#39;vue&#39;)[&#39;isReadonly&#39;]
  const isRef: typeof import(&#39;vue&#39;)[&#39;isRef&#39;]
  // ...
}
export {}

Use

<script setup name="OrderList">
// 不用import,直接使用ref
const count = ref(0)

onMounted(() => {
  console.log(&#39;mounted===&#39;)
})
</script>
上記では、vite.config.ts vue の設定で のみをインポートしました。

,

imports: ['vue']vue に加えて、ドキュメントに従って vue-router などの他のものもインポートできます。 、 vue-use など。 個人的には、使い慣れた API のみを自動的にインポートすることをお勧めします。たとえば、開発中に vue API については誰もがよく知っており、目を閉じていても記述できます。一部の馴染みのない API については、 VueUse

のようなライブラリの場合は、

import を使用することをお勧めします。結局のところ、エディタにはプロンプトがあり、間違いを犯すのは簡単ではありません。 解決策

eslint<span style="font-size: 16px;"></span>エラー報告の問題<span style="font-size: 16px;"></span>ある場合noimport を使用すると、eslint

にエラーが表示されます。プラグインは

eslintrc.js**vue-global-api にインストールできます。 **### 解決する。 <pre class='brush:php;toolbar:false;'>// 安装依赖 npm i vue-global-api -D // eslintrc.js module.exports = { extends: [ &amp;#39;vue-global-api&amp;#39; ] }</pre>3. Farewell.valueご存知のとおり、

ref

では、アクセス時に .value を追加する必要があります。

let count = ref(1)

const addCount = () => {
  count.value += 1
}

その後、Youda は新しい ref 構文シュガーの提案も提出しました。 <pre class='brush:php;toolbar:false;'>ref: count = 1 const addCount = () =&gt; { count += 1 }</pre> この提案は、発表されるやいなや、コミュニティで多くの議論を巻き起こしましたが、かなり時間が経ちましたので、ここではこれ以上このトピックについてくだらない話はやめておきます。

ここで紹介するのは別の書き方で、後ほど正式な解決策にもなりますので、ref の前に

$

を追加してください。この機能はデフォルトでオフになっています。手動でオンにする必要があります。

// vite.config.ts
import { defineConfig } from &#39;vite&#39;
import vue from &#39;@vitejs/plugin-vue&#39;

export default defineConfig({
  plugins: [
    vue({
      refTransform: true // 开启ref转换
    })
  ]
})

これをオンにした後、次のように書くことができます: <pre class='brush:php;toolbar:false;'>let count = $ref(1) const addCount = () =&gt; { count++ }</pre>この構文シュガーの構成はバージョンによって若干異なります。関連するプラグインのバージョンは次のとおりです。使用: <pre class='brush:php;toolbar:false;'>&quot;vue&quot;: &quot;^3.2.2&quot;, &quot;@vitejs/plugin-vue&quot;: &quot;^1.9.0&quot;, &quot;@vue/compiler-sfc&quot;: &quot;^3.2.5&quot;, &quot;vite&quot;: &quot;^2.6.13&quot;</pre>

4. 画像を自動的にインポートする

Vue2

では、よく次のような画像を引用します:
<img  src="/static/imghwm/default1.png"  data-src="require(&#39;@/assets/image/logo.png&#39;)"  class="lazy"  : / alt="Vue3の開発効率を上げる5つの豆知識【整理・共有】" >
しかし、

Vite

require は ではサポートされていないため、参照されるイメージは次のようになります:

<template>
  <img  src="/static/imghwm/default1.png"  data-src="Logo"  class="lazy"  : / alt="Vue3の開発効率を上げる5つの豆知識【整理・共有】" >
</template>

<script setup>
import Logo from &#39;@/assets/image/logo.png&#39;
</script>

画像を使用するたびに、import## を行う必要があります。 # これは明らかに全員の釣りの時間を遅らせます。現時点では、vite-plugin-vue-images を使用して画像を自動的にインポートできます。

#インストール<pre class='brush:php;toolbar:false;'>npm i vite-plugin-vue-images -D</pre>

#構成

// vite.config.ts
import { defineConfig } from &#39;vite&#39;
import ViteImages from &#39;vite-plugin-vue-images&#39;

export default defineConfig({
  plugins: [
    ViteImages({
      dirs: [&#39;src/assets/image&#39;] // 指明图片存放目录
    })
  ]
})

Use

<template>
  <!-- 直接使用 -->
  <img  src="/static/imghwm/default1.png"  data-src="Logo"  class="lazy"  : / alt="Vue3の開発効率を上げる5つの豆知識【整理・共有】" >
</template>

<script setup>
// import Logo from &#39;@/assets/image/logo.png&#39;
</script>
5. .vue 接尾辞は無視してください

Vue2 を開発するときにファイルをインポートする人が多いと思います。 .vue 接尾辞は無視されます。ただし、Vite

では、.vue 接尾辞を無視するとエラーが発生します。

import Home from &#39;@/views/home&#39; // error
import Home from &#39;@/views/home.vue&#39; // ok
You Dada の回答によると、サフィックスを記述する要件は実際には意図的にこのように設計されており、誰もがこのように書くことが奨励されています。

しかし、本当に書きたくない場合は、公式サポートが提供されます。

// vite.config.ts
import { defineConfig } from &#39;vite&#39;

export default defineConfig({
  resolve: {
    extensions: [&#39;.js&#39;, &#39;.ts&#39;, &#39;.jsx&#39;, &#39;.tsx&#39;, &#39;.json&#39;, &#39;.vue&#39;]
  }
})

这里要注意,手动配置extensions要记得把其他类型的文件后缀也加上,因为其他类型如js等文件默认是可以忽略后缀导入的,不写上的话其他类型文件的导入就变成需要加后缀了。

虽然可以这么做,不过毕竟官方文档说了不建议忽略.vue后缀,所以建议大家在实际开发中还是老老实实写上.vue。

感谢

本次分享到这里就结束了,感谢您的阅读!予人玫瑰,手有余香,别忘了动动手指点个赞

本文如果有什么错误或不足,也欢迎评论区指正!

【相关推荐:vue.js视频教程

以上がVue3の開発効率を上げる5つの豆知識【整理・共有】の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は掘金社区で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Vue.jsの関数:フロントエンドでのユーザーエクスペリエンスの強化Vue.jsの関数:フロントエンドでのユーザーエクスペリエンスの強化Apr 19, 2025 am 12:13 AM

Vue.jsは複数の機能を介してユーザーエクスペリエンスを改善します。1。レスポンシブシステムは、リアルタイムデータフィードバックを実現します。 2。コンポーネント開発により、コードの再利用性が向上します。 3. Vuerouterはスムーズなナビゲーションを提供します。 4.動的データの結合および遷移アニメーションは、相互作用効果を強化します。 5.エラー処理メカニズムにより、ユーザーのフィードバックが保証されます。 6.パフォーマンスの最適化とベストプラクティスは、アプリケーションのパフォーマンスを改善します。

Vue.js:Web開発におけるその役割を定義しますVue.js:Web開発におけるその役割を定義しますApr 18, 2025 am 12:07 AM

Web開発におけるVue.jsの役割は、開発プロセスを簡素化し、効率を向上させるプログレッシブJavaScriptフレームワークとして機能することです。 1)開発者は、レスポンシブデータのバインディングとコンポーネント開発を通じてビジネスロジックに集中できるようになります。 2)VUE.JSの作業原則は、パフォーマンスを最適化するためにレスポンシブシステムと仮想DOMに依存しています。 3)実際のプロジェクトでは、VUEXを使用してグローバルな状態を管理し、データの応答性を最適化することが一般的な慣行です。

Vue.jsの理解:主にフロントエンドフレームワークVue.jsの理解:主にフロントエンドフレームワークApr 17, 2025 am 12:20 AM

Vue.jsは、2014年にYou YuxiがリリースしたプログレッシブJavaScriptフレームワークで、ユーザーインターフェイスを構築します。その中心的な利点には、次のものが含まれます。1。レスポンシブデータバインディング、データ変更の自動更新ビュー。 2。コンポーネントの開発では、UIは独立した再利用可能なコンポーネントに分割できます。

Netflixのフロントエンド:React(またはVue)の例とアプリケーションNetflixのフロントエンド:React(またはVue)の例とアプリケーションApr 16, 2025 am 12:08 AM

Netflixは、Reactをフロントエンドフレームワークとして使用します。 1)Reactのコンポーネント開発モデルと強力なエコシステムが、Netflixがそれを選択した主な理由です。 2)コンポーネント化により、Netflixは複雑なインターフェイスをビデオプレーヤー、推奨リスト、ユーザーコメントなどの管理可能なチャンクに分割します。 3)Reactの仮想DOMおよびコンポーネントライフサイクルは、レンダリング効率とユーザーインタラクション管理を最適化します。

フロントエンドの風景:Netflixが選択にアプローチした方法フロントエンドの風景:Netflixが選択にアプローチした方法Apr 15, 2025 am 12:13 AM

Netflixのフロントエンドテクノロジーでの選択は、主にパフォーマンスの最適化、スケーラビリティ、ユーザーエクスペリエンスの3つの側面に焦点を当てています。 1。パフォーマンスの最適化:Netflixは、Reactをメインフレームワークとして選択し、SpeedCurveやBoomerangなどのツールを開発して、ユーザーエクスペリエンスを監視および最適化しました。 2。スケーラビリティ:マイクロフロントエンドアーキテクチャを採用し、アプリケーションを独立したモジュールに分割し、開発効率とシステムのスケーラビリティを改善します。 3.ユーザーエクスペリエンス:Netflixは、Material-UIコンポーネントライブラリを使用して、A/Bテストとユーザーフィードバックを介してインターフェイスを継続的に最適化して、一貫性と美学を確保します。

React vs. Vue:Netflixはどのフレームワークを使用していますか?React vs. Vue:Netflixはどのフレームワークを使用していますか?Apr 14, 2025 am 12:19 AM

netflixusesaCustomframeworkは、「ギボン」ビルトンリアクト、notreactorvuedirectly.1)チームエクスペリエンス:seice basedonfamperivity.2)projectomplerprojects:vueforsplerprojects、racefforcomplexones.3)customeforsneeds:reactofforsmorefloficailie.

フレームワークの選択:Netflixの決定を推進するものは何ですか?フレームワークの選択:Netflixの決定を推進するものは何ですか?Apr 13, 2025 am 12:05 AM

Netflixは、主に、パフォーマンス、スケーラビリティ、開発効率、エコシステム、技術的な負債、およびフレームワーク選択におけるメンテナンスコストを考慮しています。 1。パフォーマンスとスケーラビリティ:JavaとSpringbootが選択され、大規模なデータと高い同時リクエストを効率的に処理します。 2。開発効率とエコシステム:Reactを使用して、フロントエンド開発効率を向上させ、その豊富なエコシステムを利用します。 3.技術的な負債とメンテナンスコスト:node.jsを選択してマイクロサービスを構築して、メンテナンスコストと技術的債務を削減します。

Netflixのフロントエンドの反応、Vue、および未来Netflixのフロントエンドの反応、Vue、および未来Apr 12, 2025 am 12:12 AM

Netflixは、主にReactをフロントエンドフレームワークとして使用し、特定の機能のためにVUEによって補足されます。 1)Reactのコンポーネント化と仮想DOMは、Netflixアプリケーションのパフォーマンスと開発効率を向上させます。 2)VueはNetflixの内部ツールと小規模プロジェクトで使用されており、その柔軟性と使いやすさが重要です。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境