Vue.js 0.12 to 2.0.0 gotanda.js #5

Hayato Koriyama
Vue.js 0.12 to 2.0.0
に、変えようとしてそっとbranchを消した話
about me
@nekobato
フロントエンドエンジニア
最近はデザイン監修とプロトタイプ
Polidium
半透明動画プレイヤー
Davneko
webdavライクなオーディオプレイヤー
Vue.js at 実務の話をします
恐縮です
アジェンダ
1. なぜこんなことに
2. 0.12 to 1.0.26
3. 1.0.26 to 2.0.0
状況
on 昔懐かしポチポチゲーWebviewゲーム
コードはPerlのテンプレートエンジンとVue.jsが入り乱れる乱世
将来の夢は完全SPA
みなさんはVue.js 0.12ですか?
なぜ今0.12なのか
困ってなかったから
なぜ今0.12なのか
全然0.12で困らない
- スピードも問題無い
- スケールも問題無い
- Vue.jsの中でflux flowが作れる
- (新しめのアプリ構造に乗り遅れるわけでもない)
Announcing Vue.js 2.0
We are also not forgetting about 1.x!
早く0.12から脱出しないと(焦燥感)
歴史
Vue.js 0.12 ← 今ココ!
Vue.js 1.x Vue-Router
Vuex
Vue.js 2.0.0
Vue.js 0.12 to 1.0.26
根気のGrep
v-on=’click:function’
v-el=’name’
v-repeat=’’
<content>
etc…
@click=’function’
:el=’name’
v-for=’’
<slot>
formをformというcomponentで
上書きしてたら怒られた
[Vue warn]: Do not use built-in or
reserved HTML elements as component
id: form
すいませんでした
→ directiveに全書き換え
感想
ほとんどそのまま動く
「これ本当はやっちゃダメだろうな」と思ってた所は動かない
Vue.js 0.12 to 1.0.26
〜おわり〜
vue@next
まだalphaだけど試したい気持ち
動機
- サービスと心中するAngular 1.xのようになりたくない
- 食らいついていきたい気持ちの表明
- 将来本当に移行できるのか興味ある
- SSRとかちょっと興味ある
- 自分のプロダクトが@nextに移行しつつある知見
- デバッグが楽
おまけ:vue-loader@nextが便利
templateのVueに関するエラーをトランスパイルの時点で報告してくれる
Vue.js 1.0.26 to 2.0.0-rc
Vue.js2.0.0を試してみた系の人は言う
「ほとんどそのまま動く」
Vue.js2.0.0を試してみた系の人は言う
「ほとんどそのまま動く」
事前にVuex導入してたらな
Vuexで構築していなかった俺たちは
vm.$eventsと共に死ぬ
資料に従って準備する
2.0 Changes
https://github.com/vuejs/vue/issues/2873
日本語訳
http://qiita.com/prismrism/items/66a9dfc31139326911d8
Vue 2.0 RC Starter Resources
https://github.com/vuejs/vue/wiki/Vue-2.0-RC-Starter-Resources
根気のGrep
v-el:name, v-ref:name
this.$els.name
$vm.ready
v-for構文
etc...
ref=”name”
this.$refs.name
$vm.mounted
DOM構成が厳しくなってる
Component template should contain
exactly one root element
1コンポーネント = 1ノードツリー
コンポーネントの概念を正しく実装していたら
特にやることはない
Filtersを$watchや$computedに
変換する作業
- Filters can now only be used inside text interpolations ({{}} tags)
- Vue 2.0 will not ship with any built-in filters.
directive内で複雑なことするのやめる
@timeupdate='updateTime | debounce(300)'
一番の問題
とりあえずVue 2.0.0にはなるよver.
これを events: {
EVENT_NAME_1: function() {},
EVENT_NAME_2: function() {},
EVENT_NAME_3: function() {},
EVENT_NAME_4: function() {}
}
this.$dispatch('EVENT_NAME', function() {})
とりあえずVue 2.0.0にはなるよver.
まずこうして vue-event-emitter.js
import Vue from 'vue'
export default new Vue()
とりあえずVue 2.0.0にはなるよver.
こうする import ee from ‘../vue-event-emitter’
created() {
ee.$on('EVENT_NAME_1', this.function1)
ee.$on('EVENT_NAME_2', this.function2)
ee.$on('EVENT_NAME_3', this.function3)
ee.$on('EVENT_NAME_4', this.function4)
}
ee.$emit('EVENT_NAME', function() {})
だいたいGrepだけで
動いた
正気に戻る
結論
- シンプルな部分はGrepで置換可能
- カスタム要素は仕様に合わせるために少し頭を使う
- Vuex入れてない人はまずVuex入れよう
- Vuexが無くても動く
1 of 33

Recommended

Jjugccc2017spring m6 javafx by
Jjugccc2017spring m6 javafxJjugccc2017spring m6 javafx
Jjugccc2017spring m6 javafxtorutk
1K views22 slides
Electron, databases, and RxDB by
Electron, databases, and RxDBElectron, databases, and RxDB
Electron, databases, and RxDBBen Gotow
4.9K views21 slides
Electronで 動画ながら見アプリを作った by
Electronで 動画ながら見アプリを作ったElectronで 動画ながら見アプリを作った
Electronで 動画ながら見アプリを作ったHayato Koriyama
2.5K views28 slides
Vue.js + WordPress by
Vue.js + WordPressVue.js + WordPress
Vue.js + WordPressTakahiro Kudo
113 views14 slides
Hokuriku.net 2013 01-26 node.js by
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsTadahiro Ishisaka
1.1K views18 slides
初めてのvue.js(2.x系) by
初めてのvue.js(2.x系)初めてのvue.js(2.x系)
初めてのvue.js(2.x系)健人 井関
599 views196 slides

More Related Content

Similar to Vue.js 0.12 to 2.0.0 gotanda.js #5

120512 metro styleapp_javascript by
120512 metro styleapp_javascript120512 metro styleapp_javascript
120512 metro styleapp_javascriptTakayoshi Tanaka
508 views36 slides
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話 by
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話Yutaro Miyazaki
21.3K views64 slides
200813 fgdc mandai by
200813 fgdc mandai200813 fgdc mandai
200813 fgdc mandaibeyond Co., Ltd.
207 views21 slides
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon by
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconアバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconDeNA
4.8K views52 slides
フロントエンド技術の変遷 by
フロントエンド技術の変遷フロントエンド技術の変遷
フロントエンド技術の変遷Ryo Higashigawa
153 views13 slides
Web matrix2とvisual studio by
Web matrix2とvisual studioWeb matrix2とvisual studio
Web matrix2とvisual studioTadahiro Ishisaka
1.3K views13 slides

Similar to Vue.js 0.12 to 2.0.0 gotanda.js #5(6)

Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話 by Yutaro Miyazaki
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Yutaro Miyazaki21.3K views
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon by DeNA
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconアバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
DeNA4.8K views
フロントエンド技術の変遷 by Ryo Higashigawa
フロントエンド技術の変遷フロントエンド技術の変遷
フロントエンド技術の変遷
Ryo Higashigawa153 views

Recently uploaded

AIで始めるRustプログラミング #SolDevHub by
AIで始めるRustプログラミング #SolDevHubAIで始めるRustプログラミング #SolDevHub
AIで始めるRustプログラミング #SolDevHubK Kinzal
20 views25 slides
SSH超入門 by
SSH超入門SSH超入門
SSH超入門Toru Miyahara
194 views21 slides
Najah Matsuo Self Introduction by
Najah Matsuo Self IntroductionNajah Matsuo Self Introduction
Najah Matsuo Self IntroductionNajahMatsuo
7 views29 slides
robotics42.pptx by
robotics42.pptxrobotics42.pptx
robotics42.pptxNatsutani Minoru
168 views18 slides
lt.pptx by
lt.pptxlt.pptx
lt.pptxtomochamarika
51 views13 slides
図解で理解するvetKD by
図解で理解するvetKD図解で理解するvetKD
図解で理解するvetKDryoo toku
84 views22 slides

Recently uploaded(8)

AIで始めるRustプログラミング #SolDevHub by K Kinzal
AIで始めるRustプログラミング #SolDevHubAIで始めるRustプログラミング #SolDevHub
AIで始めるRustプログラミング #SolDevHub
K Kinzal20 views
Najah Matsuo Self Introduction by NajahMatsuo
Najah Matsuo Self IntroductionNajah Matsuo Self Introduction
Najah Matsuo Self Introduction
NajahMatsuo7 views
図解で理解するvetKD by ryoo toku
図解で理解するvetKD図解で理解するvetKD
図解で理解するvetKD
ryoo toku84 views
3Dプリンタでロボット作るよ#1_黎明編 by Yoshihiro Shibata
3Dプリンタでロボット作るよ#1_黎明編3Dプリンタでロボット作るよ#1_黎明編
3Dプリンタでロボット作るよ#1_黎明編
how query cost affects search behavior translated in JP by Tobioka Ken
how query cost affects search behavior translated in JPhow query cost affects search behavior translated in JP
how query cost affects search behavior translated in JP
Tobioka Ken9 views

Vue.js 0.12 to 2.0.0 gotanda.js #5