VEUE 3コンポーネントの構築
18961 ワード
アルファ版Vue 3 今すぐ利用可能です!
私がこのポストを書いている間、アルファ8バージョンはちょうどリリースされました.
Vueの新しいバージョンは、それが強化と改良の雪崩をもたらすでしょうが、新しいバージョンで最も重要な変更は以下の通りです. 組成API:これは多くの議論された機能は、反応フックに触発されます. ポータル:現在のコンポーネントの外にあるコンテンツをレンダリングします. 断片:複数のルートノードを許します. V - MODEL - APIを更新しました:現在、複数のモデルを受け入れます. サスペンス:条件が満たされるまで(ほとんどはUxのもの)、コンポーネントの代わりにフォールバックコンテンツをレンダリングする特殊コンポーネントです. TypeScript:Vueは今完全なタイプスクリプトをサポートしています. Vue 3はまだアクティブな開発中であるので、そのコンポーネントのいくつかはまだバグを持っているかもしれません、あるいは、若干のAPIは変わるかもしれません、しかし、新しい機能で遊んで始めるために単純なアプリケーションを書き始めることはすでに可能です.
私がこの記事のTypeScriptの大ファンであるので、私はあなたに私がTypeScriptを使用してVue 3で新しいアプリケーションを作成するために続いた手順を説明します.
しかし、トークは安いです、新しいアプリを設定を開始しましょう🙂
最初に行うことは、次の行のコマンドを使用して新しいアプリケーションを初期化することです.
簡素である
を持っている 有
Webサーバを実行する すべてが働いているならば
これらの手順の最後には、次のアーキテクチャが必要です.
今では、アプリケーションを構築するために必要な環境は、最初のVue 3コンポーネントを作成を開始する準備が整いました.
まず最初に、新しいファイルを
インサイド
また、コードからわかるように、
Vueコンポーネントが作成されましたので、
最後に、最後のステップは
このポストでは、私はVue 3、構成APIとtypescriptを使用して非常に単純なコンポーネントを作成する方法を示しました.明らかに私は氷山のちょうど先端をひっかいて、Vue 3で試みるために1000の他の特徴があります、しかし、この単純な構成要素ですでにそれはVueの次のリリースで構成要素を定義することが可能である新しい「機能的な」アプローチを評価することが可能です.
ps :すべてのコードが利用可能ですGitHub .
私に手を伸ばす自由に!Blog (in italian) || || GitHub ||
私がこのポストを書いている間、アルファ8バージョンはちょうどリリースされました.
Vueの新しいバージョンは、それが強化と改良の雪崩をもたらすでしょうが、新しいバージョンで最も重要な変更は以下の通りです.
私がこの記事のTypeScriptの大ファンであるので、私はあなたに私がTypeScriptを使用してVue 3で新しいアプリケーションを作成するために続いた手順を説明します.
しかし、トークは安いです、新しいアプリを設定を開始しましょう🙂
プロジェクトの設定
最初に行うことは、次の行のコマンドを使用して新しいアプリケーションを初期化することです.
yarn init
次に、プロジェクトに必要な依存関係を追加します.yarn add [email protected]
yarn add --dev yarn [email protected] webpack-cli webpack webpack-dev-server typescript ts-loader @vue/[email protected]
これで、ファイルを作成する簡単なWebpackの設定を定義する必要がありますwebpack.config.js
次のコードを追加します.const path = require('path')
const { VueLoaderPlugin } = require('vue-loader')
module.exports = (env = {}) => ({
mode: env.prod ? 'production' : 'development',
devtool: env.prod ? 'source-map' : 'cheap-module-eval-source-map',
entry: path.resolve(__dirname, './src/main.ts'),
output: {
path: path.resolve(__dirname, './dist'),
publicPath: '/dist/'
},
module: {
rules: [
{
test: /\.vue$/,
use: 'vue-loader'
},
{
test: /\.ts$/,
loader: 'ts-loader',
options: {
appendTsSuffixTo: [/\.vue$/],
}
},
]
},
resolve: {
extensions: ['.ts', '.js', '.vue', '.json'],
alias: {
'vue': '@vue/runtime-dom'
}
},
plugins: [
new VueLoaderPlugin(),
],
devServer: {
inline: true,
hot: true,
stats: 'minimal',
contentBase: __dirname,
overlay: true
}
})
これまでのところ、我々のセットアップは一緒に来ていますが、それはまだスクリプトをコンパイルしませんtsconfig.json
以下の規則を持つファイル{
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
"declaration": false,
"esModuleInterop": true,
"experimentalDecorators": true,
"module": "es2015",
"moduleResolution": "node",
"noImplicitAny": false,
"noLib": false,
"sourceMap": true,
"strict": true,
"strictPropertyInitialization": false,
"suppressImplicitAnyIndexErrors": true,
"target": "es2015",
"baseUrl": ".",
},
"exclude": [
"./node_modules"
],
"include": [
"./src/**/*.ts",
"./src/**/*.vue",
],
}
TypesScriptとWebPackを設定した後、ショートカットを追加して、新しいスクリプトをpackage.json
ファイル{
//...
// Dependencies
//...
"scripts": {
"dev": "webpack-dev-server"
}
}
注意:インポート時にエラーを避けるには*.vue
ファイルを追加する必要があります次のshims-vue.d.ts
ファイル./src
フォルダdeclare module "*.vue" {
import { defineComponent } from "vue";
const Component: ReturnType<typeof defineComponent>;
export default Component;
}
これまで構築されたインフラストラクチャが正しく動作していることをテストするには、いくつかのことが必要です.index.html
プロジェクトの根源に<!-- index.html -->
<h1>Hello Vue 3!</h1>
<script src="/dist/main.js"></script>
/src
フォルダmain.ts
次のようにしてプロジェクトにファイルします// src/main.ts
console.log('Hello world from Typescript!');
yarn dev
http://localhost:8080
あなたは、我々がちょうど作成したページを見るべきです.これらの手順の最後には、次のアーキテクチャが必要です.
├── index.html
├── package.json
├── tsconfig.json
├── webpack.config.js
├── src
│ ├── shims-vue.d.ts
│ └── main.ts
コンポーネントを作りましょう
今では、アプリケーションを構築するために必要な環境は、最初のVue 3コンポーネントを作成を開始する準備が整いました.
まず最初に、新しいファイルを
App.vue
インサイドsrc
次のフォルダ<template>
<h2>This is a Vue 3 component!</h2>
<button @click="increase">Clicked {{ count }} times.</button>
</template>
<script lang="ts">
import {defineComponent, ref} from "vue";
export default defineComponent({
setup() {
const count = ref(0)
const increase = () => {
count.value++
}
return {
count,
increase,
}
}
});
</script>
あなたが見ることができるように、新しいVueコンポーネントを作成するVueclass MyClass extends Vue {}
, 現在Vue 3提供defineComponent()
関数.インサイド
defineComponent()
あなたが見ることができる機能setup
関数は最初の引数として小文字を受け取ります.この場合、APPコンポーネントはトップレベルのコンポーネントになりますので、小道具は渡されません.また、コードからわかるように、
setup()
次に、テンプレートからアクセスできます.Vueコンポーネントが作成されましたので、
main.ts
ファイルは次のようになります.import {createApp} from 'vue';
import App from './App.vue';
createApp(App).mount('#app');
また、この例では、どのようにVueの以前のバージョンに比べてそれはもはや新しいアプリケーションを初期化する必要はありませんを参照することができますconst app = new Vue (....).$Mount('# app')
しかし、Vue 3では、機能を使用することが可能ですcreateApp()
とmount()
DOMセレクタへのアプリケーションのバインド方法です.最後に、最後のステップは
index.html
前のステップでVueに指定されたセレクタを含むファイル<h1>Hello Vue 3!</h1>
<div id="app"></div>
<script src="/dist/main.js"></script>
この時点でアプリケーションを再起動しますyarn dev
あなたが作成した新しいVueコンポーネントで再生を開始することができます.回収する
このポストでは、私はVue 3、構成APIとtypescriptを使用して非常に単純なコンポーネントを作成する方法を示しました.明らかに私は氷山のちょうど先端をひっかいて、Vue 3で試みるために1000の他の特徴があります、しかし、この単純な構成要素ですでにそれはVueの次のリリースで構成要素を定義することが可能である新しい「機能的な」アプローチを評価することが可能です.
ps :すべてのコードが利用可能ですGitHub .
私に手を伸ばす自由に!Blog (in italian) || || GitHub ||
Reference
この問題について(VEUE 3コンポーネントの構築), 我々は、より多くの情報をここで見つけました https://dev.to/lmillucci/building-a-vue-3-component-with-typescript-4pgeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol