Ma_gician
<Vue にはできないこと色々>
世界中のフロントエンダーの残業時間を減らす、�新しい JavaScript フロントエンドフレームワーク
読み方
Ma_gician 「マジシャン」
どういうもの?
新しいアーキテクチャで作られた
JavaScipt フロントエンド フレームワーク
特徴は?
どこで見られるの?
マイルストーン
コードが減る様子を見てみましょう
Vue.js の実装を Ma_gician で書き替え
1. new Vue が書かれている <script> を削除
2. ライブラリの読み込みを vue から ma_gician に変更
3. <div id="controller"> の > の直前に :: を追加
* Lightning Talk では、ここでライブコーディングします
Vue.js の�リアクティブ
<script src="assets/js/vue"></script>
<div id="controller">
<input v-model="message">
<p>Message = {{ message }}</p>
</div>
<script>
new Vue({
el: '#controller,
data: { message: '' }
})
</script>
Ma_gician の�リアクティブ
<script src="assets/js/ma_gician"></script>
<div ::>
<input v-model="message">
<p>Message = {{ message }}</p>
</div>
<script> を書かない利点
結論
Q.E.D.
更に機能紹介
アジェンダ
<img> fallback
<img> のロードに失敗した時
<img>
<section>
<img src=”assets/img/space.jpg”>
<img src=”assets/img/space-xxx.jpg”>
</section>
space-xxx.jpg は無いので
<img> がエラーになる。
<img> の fallback
<section>
<img src=”assets/img/space.jpg”
x-fallback=”assets/img/no-image.gif”
_>
<img src=”assets/img/space-xxx.jpg”
x-fallback=”assets/img/no-image.gif”
_>
</section>
<img> に URL を指定し、
アクティベートする。
よくある質問 (1)
<img> の fallback
<section>
<img src=”assets/img/space.jpg” _>
<img src=”assets/img/space-xxx.jpg” _>
</section>
<script src=”assets/js/bo_otstrap.js”></script>
bo_otstrap.js に書けば
全部の <img> に反映。
よくある質問 (2)
<img> の fallback
<section _>
<img src=”assets/img/space.jpg” >
<img src=”assets/img/space-xxx.jpg”>
</section>
<script src=”assets/js/bo_otstrap.js”></script>
<img> を囲ってるタグに
_ を付与すれば OK。
�
追加したコードは 1byte だけになりました。
fallback のまとめ
つまり
Nested Filter
Vue.js の filter
Ma_gician の filter
Vue.js の�filter
<div id="controller">
<p>{{ price | addUnit }}</p>
</div>
<script>
new Vue({
el: '#controller',
data: { price: 23400 },
filters: {
addUnit: function (price) {
return price + '円'
}
}
})
</script>
Vue インスタンスで�filter を一括定義
Ma_gician の�filter
<div x-state="{ price: 23400 }"
x-filters="{
addUnit (price) { return price + '円' }
}"
::>
<div>
<p>{{ price | addUnit }}</p>
</div>
</div>
:: を付与した要素に�filter を一括定義
Ma_gician の�Nested filters
<div x-state="{ price: 23400 }"
x-filters="{
addUnit (price) { return price + '円' }
}"
::>
<div>
<p>{{ price | addUnit }}</p>
</div>
<div x-filters="{
addUnit (price) { return '$' + price }
}">
<p>{{ price | addUnit }}</p>
</div>
</div>
子要素にも filters を�定義できる
Nested Filters の利点
HTML Imports�(Single File Component)
ワイヤーフレーム
<main>
<section>
<h1>
ここにタイトル
</h1>
<div>
ここにユーザ情報
</div>
</section>
</main>
HTML Imports の
適用後
<main>
<section _>
<h1 x-import="title.html">
ここにタイトル
</h1>
<div x-import="user-info.html">
ここにユーザ情報
</div>
</section>
</main>
Ma_gician の HTML Imports
自己紹介
名前:Stew Eucen(悉生 游漩)� 読み方: しちゅう ゆうせん
国籍:日本
Twitter: @StewEucen
Facebook: facebook.com/stew.eucen
OSS 活動に向けて
スポンサー募集中です!
Ma_gician が何をしてるのか。
気になる方は、LT 終了後に
最寄りの Stew Eucen まで
お声がけください!
ご静聴ありがとうございました!