Submit Search
作って分かるKnockoutJS@ALM11月
7 likes
2,978 views
Takuya Ueda
社内勉強会で発表したスライドです。
Technology
Read more
1 of 26
Download now
Downloaded 15 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
More Related Content
PDF
Knockout.js を利用したインタラクティブ web アプリケーション開発
Daizen Ikehara
PPTX
KnockoutJSを使用したアプリケーションの構築例
masakazusegawa
PPTX
20140517 knockoutjs hands-on
Seiji Noro
PDF
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
Toshihiro Kawachi
PPTX
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
masakazusegawa
PPTX
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
Seki Yousuke
PDF
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
PPTX
AngularJSを浅めに紹介します
nkazuki
Knockout.js を利用したインタラクティブ web アプリケーション開発
Daizen Ikehara
KnockoutJSを使用したアプリケーションの構築例
masakazusegawa
20140517 knockoutjs hands-on
Seiji Noro
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
Toshihiro Kawachi
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
masakazusegawa
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
Seki Yousuke
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
AngularJSを浅めに紹介します
nkazuki
What's hot
(20)
PDF
React.js + Flux
dsuke Takaoka
PPTX
Windows ストアアプリのgrid viewを入門してみた
一希 大田
PDF
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
PDF
( ゚∀゚)o彡° Flux! Flux!
Yuki Ishikawa
PPTX
ライオンでも分かるVuejs
lion-man
PDF
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
normalian
PPTX
エンタープライズ分野での実践AngularJS
Ayumi Goto
PDF
プロダクトに 1 から Vue.js を導入した話
Shohei Okada
PDF
Vue.js入門
Takuya Sato
PDF
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
Akira Inoue
PPTX
チュートリアルではじめるVue.js
小川 昌吾
PPTX
簡単AngularJS(関西AngularJS勉強会)
Takahiro Maki
PDF
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
貴志 上坂
PDF
株式会社インタースペース 清水様 登壇資料
leverages_event
PDF
翻訳から始めるVue.js 入門
Makoto Chiba
PDF
Flux react現状確認会
VOYAGE GROUP
PPT
T35 ASP.NET MVCを使ったTDD入門
normalian
PPTX
~初心者がこれから Web アプリの開発をするために~
Oda Shinsuke
PDF
SIROK技術勉強会 #1 「Reactってなんだ?」
Naoyuki Kataoka
PDF
jQuery と MVC で実践する標準志向 Web 開発
Akira Inoue
React.js + Flux
dsuke Takaoka
Windows ストアアプリのgrid viewを入門してみた
一希 大田
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
( ゚∀゚)o彡° Flux! Flux!
Yuki Ishikawa
ライオンでも分かるVuejs
lion-man
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
normalian
エンタープライズ分野での実践AngularJS
Ayumi Goto
プロダクトに 1 から Vue.js を導入した話
Shohei Okada
Vue.js入門
Takuya Sato
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
Akira Inoue
チュートリアルではじめるVue.js
小川 昌吾
簡単AngularJS(関西AngularJS勉強会)
Takahiro Maki
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
貴志 上坂
株式会社インタースペース 清水様 登壇資料
leverages_event
翻訳から始めるVue.js 入門
Makoto Chiba
Flux react現状確認会
VOYAGE GROUP
T35 ASP.NET MVCを使ったTDD入門
normalian
~初心者がこれから Web アプリの開発をするために~
Oda Shinsuke
SIROK技術勉強会 #1 「Reactってなんだ?」
Naoyuki Kataoka
jQuery と MVC で実践する標準志向 Web 開発
Akira Inoue
Ad
Similar to 作って分かるKnockoutJS@ALM11月
(14)
PDF
How do you like knockout?
Narami Kiyokura
PDF
Knockout を用いた Firefox OS アプリケーションの開発
Kentaro Iizuka
PDF
Knockout_エンジニア勉強会20131120
エンジニア勉強会 エスキュービズム
KEY
Knockout
Kazuhiro Eguchi
PDF
実践Knockout
Kazuhiro Eguchi
PDF
ftechmeetup_データバインディングはどう実装されているのか
kanatsum
PDF
DevLOVE Kansai KnockoutJS
Go Tanaka
PPTX
20140712 knockoutjs-hands-on-in-osaka
Seiji Noro
PDF
Study Intro Backbone
Gensei Kawasaki
PPT
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
PDF
Knockout handson
Go Tanaka
PDF
Getting start with knockout.js
Akio Ishida
PDF
Backbone.js
daisuke shimizu
PDF
Swift bondさわってみた
Motoki Narita
How do you like knockout?
Narami Kiyokura
Knockout を用いた Firefox OS アプリケーションの開発
Kentaro Iizuka
Knockout_エンジニア勉強会20131120
エンジニア勉強会 エスキュービズム
Knockout
Kazuhiro Eguchi
実践Knockout
Kazuhiro Eguchi
ftechmeetup_データバインディングはどう実装されているのか
kanatsum
DevLOVE Kansai KnockoutJS
Go Tanaka
20140712 knockoutjs-hands-on-in-osaka
Seiji Noro
Study Intro Backbone
Gensei Kawasaki
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
Knockout handson
Go Tanaka
Getting start with knockout.js
Akio Ishida
Backbone.js
daisuke shimizu
Swift bondさわってみた
Motoki Narita
Ad
More from Takuya Ueda
(20)
PDF
Goにおけるバージョン管理の必要性 − vgoについて −
Takuya Ueda
PDF
WebAssembly with Go
Takuya Ueda
PDF
GAE/Goとsyncパッケージ
Takuya Ueda
PDF
静的解析を使った開発ツールの開発
Takuya Ueda
PDF
そうだ、Goを始めよう
Takuya Ueda
PDF
マスター・オブ・goパッケージ
Takuya Ueda
PDF
メルカリ カウルのマスタデータの更新
Takuya Ueda
PDF
Go1.8 for Google App Engine
Takuya Ueda
PDF
Go Friday 傑作選
Takuya Ueda
PDF
GoによるiOSアプリの開発
Takuya Ueda
PDF
Static Analysis in Go
Takuya Ueda
PDF
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
PDF
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
PDF
エキスパートGo
Takuya Ueda
PDF
Go静的解析ハンズオン
Takuya Ueda
PDF
Goにおける静的解析と製品開発への応用
Takuya Ueda
PDF
オススメの標準・準標準パッケージ20選
Takuya Ueda
PDF
Gopher Fest 2017参加レポート
Takuya Ueda
PDF
Google Assistant関係のセッションまとめ
Takuya Ueda
PDF
Cloud functionsの紹介
Takuya Ueda
Goにおけるバージョン管理の必要性 − vgoについて −
Takuya Ueda
WebAssembly with Go
Takuya Ueda
GAE/Goとsyncパッケージ
Takuya Ueda
静的解析を使った開発ツールの開発
Takuya Ueda
そうだ、Goを始めよう
Takuya Ueda
マスター・オブ・goパッケージ
Takuya Ueda
メルカリ カウルのマスタデータの更新
Takuya Ueda
Go1.8 for Google App Engine
Takuya Ueda
Go Friday 傑作選
Takuya Ueda
GoによるiOSアプリの開発
Takuya Ueda
Static Analysis in Go
Takuya Ueda
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
エキスパートGo
Takuya Ueda
Go静的解析ハンズオン
Takuya Ueda
Goにおける静的解析と製品開発への応用
Takuya Ueda
オススメの標準・準標準パッケージ20選
Takuya Ueda
Gopher Fest 2017参加レポート
Takuya Ueda
Google Assistant関係のセッションまとめ
Takuya Ueda
Cloud functionsの紹介
Takuya Ueda
作って分かるKnockoutJS@ALM11月
1.
作って分かる KnockoutJS 2013/11/19(火) @ALM 11月
2.
自己紹介 KLab株式会社 エンジニア 上田拓也 Go, JavaScript, Java, twitter
: @tenntenn PHP
3.
アジェンダ ● KnockoutJSとは? ● バインディングの仕組み ●
実装してみた
4.
KnockoutJSとは?
5.
KnockoutJSとは? ● JavaScriptのMVVMフレームワーク ○ MVVM:
Model-View-ViewModel ● ViewModel(VM)とDOMの要素を双方向バイン ドする機能を提供する バインド ViewModel Element
6.
KnockoutJSの特徴 ● コールバックが少なくなる ● 他のフレームワークと一緒に使える ○
提供しているのはバインディングだけ ○ 既存のプロジェクトに投入しやすい(かも) ● 独自タグを使っていない ○ data-bind属性かコメントを使う ○ でもdata-bind属性が大きくなりすぎる ■ <div data-bind=”abind: avalue, cbind: cvalue,...”> ● 割りと重い ○ モバイル用途だと若干重い
7.
KnockoutJSの双方向バインド (1)ViewModel → Element ViewModel { firstName:
‘Foo’, lastName: ‘Bar’ } Element バインド <input value=”Foo”> <input value=”Bar”>
8.
KnockoutJSの双方向バインド (1)ViewModel → Element ViewModel { firstName:
‘Piyo’, lastName: ‘Hoge’ } Element バインド <input value=”Foo”> <input value=”Bar”>
9.
KnockoutJSの双方向バインド (1)ViewModel → Element ViewModel { firstName:
‘Piyo’, lastName: ‘Hoge’ } Element バインド <input value=”Piyo”> <input value=”Hoge”>
10.
KnockoutJSの双方向バインド (2)ViewModel ← Element ViewModel { firstName:
‘Foo’, lastName: ‘Bar’ } Element バインド <input value=”Foo”> <input value=”Bar”>
11.
KnockoutJSの双方向バインド (2)ViewModel ← Element ViewModel { firstName:
‘Foo’, lastName: ‘Bar’ } Element バインド <input value=”Piyo”> <input value=”Hoge”>
12.
KnockoutJSの双方向バインド (2)ViewModel ← Element ViewModel { firstName:
‘Piyo’, lastName: ‘Hoge’ } Element バインド <input value=”Piyo”> <input value=”Hoge”>
13.
KnockoutJSの使用例 ■HTML <input data-bind=”value:firstName”> <input data-bind=”value:lastName”> ■JavaScript var
vm = { firstName: ko.observable(“Foo”), lastName: ko.observable(“Bar”) }; ko.applyBindings(vm, document.body); http://jsfiddle.net/uedatakuya/ma43x/
14.
いろいろなバインディング ● cssバインド <div data-bind=”css:
{error, isError}”></div> ● if/ifnotバインド <!-- ko if: ok -->OK<!-- /ko--> ● foreachバインド <ol data-bind=”foreach: items”> <li data-bind=”text:$data.name”></li> </ol> http://knockoutjs.com/documentation/introduction.html
15.
カスタムバインド ● 独自バインドを作ることができる ko.bindingHandlers.yourBindingName =
{ init: function(element, valueAccessor, allBindings, viewModel, bindingContext) { }, update: function(element, valueAccessor, allBindings, viewModel, bindingContext) { } } <div data-bind=”yourBindingName: someValue”></div> http://knockoutjs.com/documentation/custom-bindings.html
16.
ko.computed (ko.dependentObservable) ● 他observable(subscribable)に依存した observableを作れる var a
= ko.observable(100); var c = ko.obaervable(200); var c = ko.computed(function() { return a() + b(); }); console.log(a(), b(), c()); // 100, 200, 300 ⇒どういう仕組で動いているのか?
17.
バインディングの仕組み
18.
バインディングの仕組み ● KnockoutJSのバインディングの仕組 みをソースコードを読んでみて理解する
19.
対象とするもの ● ko.subscribable(ko.subscription) ● ko.observable ●
ko.dependencyDetection ● ko.dependentObservable(ko. computed) http://jsfiddle.net/uedatakuya/9hS5n/
20.
ko.subscribable ko.subscribable -----------------------------+subscribe() +notifySubscripters() ko.observable ko.dependentObservable (ko.computed) http://jsfiddle.net/uedatakuya/9hS5n/
21.
ko.computed (ko.dependentObservable) ● 他observable(subscribable)に依存した observableを作れる var a
= ko.observable(100); var c = ko.obaervable(200); var c = ko.computed(function() { return a() + b(); }); console.log(a(), b(), c()); // 100, 200, 300 ⇒どういう仕組で動いているのか?
22.
ko.observable(ko.subscribable) ko.observable (ko.subscribable) subscripter subscript Write notifySubscripters callback http://jsfiddle.net/uedatakuya/9hS5n/
23.
ko.dependenctyDetectionと ko.dependentObservable ko. dependentObserva ble Init ko. dependencyDet ection ko.subscribable evaluateImediate begin Read registerDependency callback <依存関係に追加> end http://jsfiddle.net/uedatakuya/9hS5n/
24.
実装してみた
25.
実装してみた ● さらに簡単に実装してみて理解する ● エラー処理や難しいことは省く http://jsfiddle.net/uedatakuya/9hS5n/
26.
【解説】実装してみた ● https://gist.github. com/tenntenn/7540535 ● http://jsfiddle. net/uedatakuya/9hS5n/
Download