Upgrade to Pro — share decks privately, control downloads, hide ads and more …

今日から始めるVue.js

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Takahito Hashimoto Takahito Hashimoto
October 28, 2018
220

 今日から始めるVue.js

Avatar for Takahito Hashimoto

Takahito Hashimoto

October 28, 2018
Tweet

Transcript

  1. data <div id=“app”> {{ message }} <input type=“text” v-model=“message”> </div>

    <script> var vm = new Vue({ el: ‘#app’, data: { message: ‘Hello World!’ } }); </script> • まずはHello Worldから! • Vue.jsのインスタンを宣 言してdomの指定要素に バインドする • {{ message }} (Mustacheタグ)を使うこ とで動的に値をdomに入 れることが出来る。
  2. computed <script> var vm = new Vue({ el: ‘#app’, data:

    { arr: [‘hoge’, ‘fuga’, ‘puyo’] } computed: { combinedList: function () { return this.arr.join(‘ ‘); } } }); </script> • 算出プロパティ • 依存するものが更新されると自 動的に更新してくれる • new Date()などの更新は検出 してくれないので注意 <div id=“app”> {{ conbinedList }} </div>
  3. methos <div id=“app”> <button v-on:click=“hello”> Click! </button> </div> <script> var

    vm = new Vue({ el: ‘#app’, methods: { hello: function () { alert(‘Hello World!’); } } }); </script> • methodに関数を定義する • Domにv-on:clickなどで定義す ることで呼び出しすることがで きる。 • 算出プロパティと違って呼び出 すたびに評価される
  4. コンポーネント <div id=“app”> <hello-world v-bind:name=“Vue.js”> </hello-world> </div> <script> Vue.component(‘hello-world’, function()

    { props: [‘name’], template: ` <span> Hello {{ name }} !! </span> ` }); </script> • コンポーネントを定義すること で塊を作ることができる • 親から値を渡して子で使える • 子のイベントから親のイベント を呼び出すこともできる
  5. v-for <div id=“app”> <span v-for:”(item, index) in items” v-bind:key=“index”> {{

    item }} </span> </div> <script> var vm = new Vue({ el: ‘#app’, data: { items: [ ‘aaa’, ‘bbb’, ‘ccc’] } });</script> • バインドされているインスタン スのdataないの要素をfor文で まわして表示できる • keyの指定は必須
  6. v-if <div id=“app”> <span v-for:”(item, index) in items” v-if=“index %

    2 == 0” v-bind:key=“index”> {{ item }} </span> </div> <script> var vm = new Vue({ el: ‘#app’, data: { items: [ ‘aaa’, ‘bbb’, ‘ccc’] } });</script> • 条件付きレンダリング • v-if の評価結果が真であれば対 象の要素が描画される
  7. 実演 19 • TODOアプリ作ります • webpackは使いません • HTMLファイル1つ + javascirpitファイル1つ

    • CSSはbootstrapを拝借します • データはローカルストレージに保存