0
0

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 3 years have passed since last update.

Vue.jsのドキュメントを少しだけ読んでみた

Last updated at Posted at 2020-08-01

Vue.jsとは?

フロントエンドのフレームワーク。
'はじめに'の部分を自分なりに噛み砕いてみた

特徴

コンポーネントの概念

vue.jsでは画面部品単位でvueインスタンスを作成し、それらを組み合わせることでページを組み立てていく。

コンポーネントシステムは Vue.js におけるもうひとつの重要な抽象概念です。「小さく、自己完結的で、(多くの場合)再利用可能なコンポーネント」を組み合わせることで、大規模アプリケーションを構築することが可能になります。アプリケーションのインターフェイスについて考えてみると、ほぼすべてのタイプのインターフェイスはコンポーネントツリーとして抽象化することができます:
components.png
(引用:https://jp.vuejs.org/v2/guide/index.html)

この小さな例で説明していきます

<div id="app-7">の中に<todo-item>というタグがあるのがわかると思います。これがコンポーネントというもので<コンポーネント名>タグとしてtemplate内に「部品」を埋め込む事ができます。

スクリーンショット 2020-08-01 18.40.55.png

子コンポーネントへの値渡し

v-bindを用いてtodoプロパティへ変数を渡しています。
image.png

宣言的レンダリング

vueのコアでは、template構文という文法でコンパクトにhtmlに変数を描画できる。

変数の描画

template内{{}}にdataで定義した変数を埋め込める

index.html
<div id="app">
  {{ message }}
</div>

<script>
var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})
</script>

リアクティブ

data:内の変数が更新されるとテンプレートがそれに「反応」して更新が反映される。
テンプレート構文内のバスケット{{}}内の変数名とVueインスタンスのdataプロパティに格納されている変数がリンクしている。

スクリーンショット 2020-08-01 18.07.03.png

ディレクティブ

Vue.jsで用意されたhtmlタグの属性のこと。

(例)v-bindディレクティブ
属性のvalueをバインドできる(下記の例はtitle属性をバインドしている)

index.html
<div id="app-2">
  <span v-bind:title="message">
    Hover your mouse over me for a few seconds to see my dynamically bound
    title!
  </span>
</div>

<script>
   ar app2 = new Vue({
    el: "#app-2",
    data: {
      message: "You loaded this page on " + new Date().toLocaleString()
    }
  });
</script>

参考

Vue.js公式ドキュメント

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?