* 目次 [#e9b868b6]
#contents

* vue.jsとは [#s100c20d]
ざっくりいうと、JavaScript のデータと HTML の要素を紐付けて、

データが変われば勝手に表示に反映してくれます。

毎回データと表示を同期させる処理を自分で書かなくてもよくなり、

インタラクティブなページや状態管理が活躍するページを作りやすくなります。


** 本家 [#m61e4cb8]
https://jp.vuejs.org/index.html

日本語の情報が豊富
*** スタイルガイド [#h535dfce]
https://jp.vuejs.org/v2/style-guide/index.html

優先度 A,Bあたりは、必読


** 簡単なサンプル [#cc8e072d]

index.html


 <html>
     <head>
         <link rel="stylesheet" href="css/index.css">
         <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
     </head>
 
     <body>
         <div id="index01">
             ユーザ名 : {{ name }}
             <p>TODO</p>
             <li 
                 v-for="item in items"
                 :key="item.id"
             >
                 {{ item.id + ":" + item.name }}
             </li>
         </div>
         <script src="index.js"></script>
     </body>
 </html>




index.js


 var app = new Vue({
     el: '#index01',
     data: {
         name: 'ぷーさん',
         items: [
             { id:1, name: 'はちみつなめる' },
             { id:2, name: 'さんぽする' },
             { id:3, name: 'おひるねする' },
         ]
     }
 });

* デバッグツール [#h1064aff]

ブラウザ拡張がある

https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd

* vue-cli のインスト npm install -g vue-cliール [#h2341bfd]

nodeのインストールが済んでいることを確認

 $ node -v
 v10.16.0


次のコマンドでインストール
 npm install -g vue-cli


確認
 $ vue --version
 2.9.6

プロジェクトの作成
 vue init <template> <project-name>


よくサンプルで、出てくるのは、以下の通り、
 vue init webpack vue-template

いくつか選択肢がでてくる

** テンプレート [#kdfd68b6]
https://sounansa.net/archives/2360

*** template構文 [#p96465c1]
https://jp.vuejs.org/v2/guide/syntax.html

*** template書き方 [#ubaec75e]

https://qiita.com/seya/items/93a0055c8fdab62d584f

* レイアウト [#rf2af3d9]

Vueの機能は使わず、基本的にCSSのみで解決することをまずかんがえましょう。
最初からVueのUIライブラリやCSSフレームワークのgridモジュールを探しに行かないほうが良いです。

**Vueの機能を使わずに、レイアウト [#nea46f82]
*** 画面を分割する [#cd141dce]

CSS grid layoutを使う

https://ics.media/entry/15649

*** いくつかのDIVを等幅で並べる [#hfc0fda0]
flexboxを使う

https://qiita.com/takanorip/items/a51989312160530d89a1

*** ボタン等をボックスの右端とかに固定する [#wd6f27c6]

閉じるボタンとか

position: absoluteを使う

https://saruwakakun.com/html-css/basic/relative-absolute-fixed

*** 中央寄せする [#m5dbb6f6]

https://yoshiko-pg.github.io/slides/20151215-scripty/

** Vueの機能をつかってレイアウト [#h502c1a4]
nuxt.jsのlayoutsを使うのが、効率がよいらしい。

https://ja.nuxtjs.org/api/pages-layout/

** Vue CLIで作成したプロジェクトのレイアウトを変更 [#z442a2de]
https://qiita.com/whoshino/items/22426bd18b5ac7e192b0


* UI [#m1341cc4]
** UIの実装例をたくさん載せてるサイト [#pef00cbb]

** onsen [#t3661891]

https://ja.onsen.io/v2/api/vue/v-ons-splitter.html


** vueitfy [#z22e7a6a]
https://vuetifyjs.com/ja/components/expansion-panels

** vue material [#zb6eb71a]
https://vuematerial.io/components/menu/

** vue toolbox [#ad7803e2]

見やすく分類されてる

https://www.vuetoolbox.com/

** awesome [#ga021dc7]

https://github.com/vuejs/awesome-vue

** vue.jsのサンプル [#off54180]

https://vuejsexamples.com/

*** CMSの例 [#ved68c79]
https://vuejsexamples.com/a-vue-js-2-0-content-management-system/

*** ダイアグラムコンポーネント [#w39a4d47]

https://vuejsexamples.com/diagram-component-for-vue-js/

** D&Dコンポーネント [#p6a38080]
Vue.Draggable

https://github.com/SortableJS/Vue.Draggable

** モーダル [#b36438a0]
https://helloworld-blog.tech/javascript/vue-js%e3%81%a7%e3%83%89%e3%83%a9%e3%83%83%e3%82%b0%e3%82%a2%e3%83%b3%e3%83%89%e3%83%89%e3%83%ad%e3%83%83%e3%83%97%e3%81%a7%e7%a7%bb%e5%8b%95%e5%8f%af%e8%83%bd%e3%81%aa%e3%83%a2%e3%83%bc%e3%83%80

** vue-cli (vuex) で PlantUML エディターを作ってみた [#h674e883]
https://qiita.com/kkeisuke/items/45f4725d41dd789061a2

** vue で CMS [#y8b8110f]
https://jp.vuejs.org/v2/cookbook/serverless-blog.html

使ってみた感想が書いてあるサイト

https://qiita.com/tiwu_official/items/8ab7bb47eba265db198d

** 個別にコンポーネントを調べるには [#qac5d587]

google とかで、vue splitterとかで、検索すると、まとまってるサイトを

いくつか見つけることができる

*** vue-splitter [#l963ae9c]
https://github.com/rmp135/vue-splitter


* UI部品化には、Elementをつかうのでインストール [#h3f93c9e]
 npm install element-ui -S


** アプリケーションでの利用 [#g319a48b]
 import Vue from 'vue'
 import Element from 'element-ui'
 import locale from 'element-ui/lib/locale/lang/ja'
 import 'element-ui/lib/theme-chalk/index.css'
 
 Vue.use(Element, { locale })


** データドリブンについての考察 [#gc39d75a]


https://rangle.io/blog/how-to-create-data-driven-user-interfaces-in-vue/

*** 使用するvueの機能 [#x1703989]
https://vuejs.org/v2/guide/components.html#Dynamic-Components

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS