0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

めっちゃ簡単なVue 3の部分的導入と便利なインテリセンス有効化の方法

Last updated at Posted at 2022-07-27

はじめに

Vue 3をSPAではなく部分的に導入する方法とVSCode でVue 3 のインテリセンスを有効にする方法がわかったのでメモしておきます。
正攻法としてnpm init vue@latestなどを使ってVue 3を導入している分にはこの記事は必要ないと思います。
あと、Vue 3 ではTypeScriptの本格的なサポートがされたらしいのでTypeScriptを使おうと思っている人にもあんまり必要ないかもしれない。

環境&使用したもの

  • npm --> version 8.11.0
  • VSCode --> version 1.69.2

ディレクトリ構成(部分的導入完了後)

※ ディレクトリ構成については手順がわかりやすいように記載してるが、こういった構成じゃないと導入できないわけではなく、任意のディレクトリ構成で全然問題ない。

.
│  package-lock.json
│  package.json
│
├─node_modules
│  │  .package-lock.json
│  <割愛>
│
└─src
    ├─html
    │      index.html
    │
    └─js
        │  index.js
        │
        └─lib
                vue.global.js
                vue.global.prod.js

Vue 3の部分的導入手順

  1. Vue 3 モジュールのダウンロード
    cmd
    npm init
    npm i vue@3.2.36 --save-dev
    
  2. Vue 3 のスクリプト(実態)を公開用ディレクトリにコピー
    cmd
    cp node_modules\vue\dist\vue.global.js src\js\lib
    cp node_modules\vue\dist\vue.global.prod.js src\js\lib
    
  3. htmlへVue 3 のスクリプト導入&導入したい部分を定義
    src/html/index.html
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Vue3 インテリセンス</title>
            <link href="/favicon.ico" type="image/x-icon" rel="icon" />
            <link href="/favicon.ico" type="image/x-icon" rel="shortcut icon" />
            <script src="../js/lib/vue.global.js"></script> <!-- 追加:Vue 3 のスクリプト導入 -->
            <script src="../js/index.js"></script>
        </head>
    
        <body>
            <h1>Vue3 インテリセンス</h1>
            <div id="app">{{ message }}</div> <!-- 追加:導入したい部分を定義 -->
        </body>
    </html>
    
    
  4. Vue 3 でプログラミング
    src/js/index.js
    document.addEventListener('DOMContentLoaded', function () {
         const { createApp } = Vue // 「vue.global.js」にはグローバル変数が定義されている
         createApp({
             data() {
                 return {
                     message: 'Hello Vue!'
                 }
             }
         }).mount('#app')
     });
    
    
    これで導入完了!めっちゃ簡単!「index.html」をブラウザで表示するとこんな感じ!
    image.png

ここからはJSでVue 3 のインテリセンスを有効にする方法

  1. Vueの変数定義部分にJSDock追加
    index.js
    document.addEventListener('DOMContentLoaded', function () {
         /**
          * ★ 以下のJSDocの記述を行うことでインテリセンスが効くようになる
          * @type { import("vue") }
          */
         const { createApp } = Vue
         createApp({
             data() {
                 return {
                     message: 'Hello Vue!'
                 }
             }
         }).mount('#app')
     });
    
    
    以上!こんな感じでインテリセンスが有効になる!
    Intellisense.gif

所感

やることがわかればVue 3 の部分的、段階的導入は実は簡単だった。
部分的導入をした場合のVSCodeでのインテリセンスの有効化の方法がわからなくて焦った。。
部分的、段階的に導入、かつ、Typescriptじゃない状況で開発する人はすくなからずいると思うのでそういった人の助けになれれば幸いです。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?