Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Akio Ishida
2,330 views
Getting start with knockout.js
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 19
2
/ 19
3
/ 19
4
/ 19
5
/ 19
6
/ 19
7
/ 19
8
/ 19
9
/ 19
10
/ 19
11
/ 19
12
/ 19
13
/ 19
14
/ 19
15
/ 19
16
/ 19
17
/ 19
18
/ 19
19
/ 19
More Related Content
PDF
PHPでWebSocketを実装してみてわかったこと
by
ksimoji
PDF
JavaScript 研修
by
Yuki Ishikawa
PPTX
Concurrent Programming in JavaScript
by
yjono Seino
PDF
JavaScriptで出来る、あんなことこんなこと
by
Mayu Kimura
PPTX
AngularJS2でつまづいたこと
by
Takehiro Takahashi
PDF
Concurrent Programm in JavaScript
by
yjono Seino
PDF
Node.jsでサーバプログラマ デビューしよう
by
Yuusuke Takeuchi
PDF
Ember コミュニティとわたし
by
Ryunosuke SATO
PHPでWebSocketを実装してみてわかったこと
by
ksimoji
JavaScript 研修
by
Yuki Ishikawa
Concurrent Programming in JavaScript
by
yjono Seino
JavaScriptで出来る、あんなことこんなこと
by
Mayu Kimura
AngularJS2でつまづいたこと
by
Takehiro Takahashi
Concurrent Programm in JavaScript
by
yjono Seino
Node.jsでサーバプログラマ デビューしよう
by
Yuusuke Takeuchi
Ember コミュニティとわたし
by
Ryunosuke SATO
What's hot
PPTX
ビルド職人の朝は早い
by
Masashi MATSUI
PDF
Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介
by
schoowebcampus
PDF
JavaScriptユーティリティライブラリの紹介
by
Yusuke Hirao
PDF
TypeScript超入門
by
Narami Kiyokura
PDF
モダンJavaScript環境構築一歩目
by
大樹 小倉
PDF
Rubyで作るクローラー Ruby crawler
by
Takuro Sasaki
PDF
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
by
Jun-ichi Sakamoto
PDF
「新しい」を生み出すためのWebアプリ開発とその周辺
by
Yusuke Wada
PDF
大規模なJavaScript開発の話
by
terurou
PDF
TypeScriptへの入口
by
Sunao Tomita
PPTX
Non blocking and asynchronous
by
Norio Kobota
PDF
MF GeeksNight pplogの話
by
Naoto Koshikawa
PDF
クライアントサイドjavascript簡単紹介
by
しくみ製作所
PDF
Javascriptのあれやこれやをまとめて説明してみる
by
Shunji Konishi
PDF
八王子
by
Kazutake Hiramatsu
PDF
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
by
civic Sasaki
PDF
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
by
Kohei Asai
PPTX
片手間JS on Rails
by
Ryunosuke SATO
ビルド職人の朝は早い
by
Masashi MATSUI
Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介
by
schoowebcampus
JavaScriptユーティリティライブラリの紹介
by
Yusuke Hirao
TypeScript超入門
by
Narami Kiyokura
モダンJavaScript環境構築一歩目
by
大樹 小倉
Rubyで作るクローラー Ruby crawler
by
Takuro Sasaki
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
by
Jun-ichi Sakamoto
「新しい」を生み出すためのWebアプリ開発とその周辺
by
Yusuke Wada
大規模なJavaScript開発の話
by
terurou
TypeScriptへの入口
by
Sunao Tomita
Non blocking and asynchronous
by
Norio Kobota
MF GeeksNight pplogの話
by
Naoto Koshikawa
クライアントサイドjavascript簡単紹介
by
しくみ製作所
Javascriptのあれやこれやをまとめて説明してみる
by
Shunji Konishi
八王子
by
Kazutake Hiramatsu
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
by
civic Sasaki
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
by
Kohei Asai
片手間JS on Rails
by
Ryunosuke SATO
Similar to Getting start with knockout.js
PDF
作って分かるKnockoutJS@ALM11月
by
Takuya Ueda
PPTX
AngularJS入門
by
Kenji Shirane
PDF
How do you like knockout?
by
Narami Kiyokura
PDF
Knockout を用いた Firefox OS アプリケーションの開発
by
Kentaro Iizuka
PDF
Knockout.js を利用したインタラクティブ web アプリケーション開発
by
Daizen Ikehara
KEY
Knockout
by
Kazuhiro Eguchi
PDF
Knockout_エンジニア勉強会20131120
by
エンジニア勉強会 エスキュービズム
作って分かるKnockoutJS@ALM11月
by
Takuya Ueda
AngularJS入門
by
Kenji Shirane
How do you like knockout?
by
Narami Kiyokura
Knockout を用いた Firefox OS アプリケーションの開発
by
Kentaro Iizuka
Knockout.js を利用したインタラクティブ web アプリケーション開発
by
Daizen Ikehara
Knockout
by
Kazuhiro Eguchi
Knockout_エンジニア勉強会20131120
by
エンジニア勉強会 エスキュービズム
More from Akio Ishida
PDF
Prophecyを使ったユニットテスト
by
Akio Ishida
PDF
phpspecで学ぶLondon School TDD
by
Akio Ishida
PDF
textsearch_jaで全文検索
by
Akio Ishida
PDF
PostgreSQLの範囲型と排他制約
by
Akio Ishida
PDF
XIDを周回させてみよう
by
Akio Ishida
PDF
Ruby Postgres 2009
by
Akio Ishida
PDF
よりよいPHPUnitの実行方法を求めて
by
Akio Ishida
PDF
Ruby Postgres
by
Akio Ishida
PDF
使いこなそうGUC
by
Akio Ishida
PDF
Rubysapporo Stringsearch
by
Akio Ishida
PDF
Local php-100828 2
by
Akio Ishida
PDF
PostgreSQLで学ぶBoyer-Moore-Horspoolアルゴリズム
by
Akio Ishida
Prophecyを使ったユニットテスト
by
Akio Ishida
phpspecで学ぶLondon School TDD
by
Akio Ishida
textsearch_jaで全文検索
by
Akio Ishida
PostgreSQLの範囲型と排他制約
by
Akio Ishida
XIDを周回させてみよう
by
Akio Ishida
Ruby Postgres 2009
by
Akio Ishida
よりよいPHPUnitの実行方法を求めて
by
Akio Ishida
Ruby Postgres
by
Akio Ishida
使いこなそうGUC
by
Akio Ishida
Rubysapporo Stringsearch
by
Akio Ishida
Local php-100828 2
by
Akio Ishida
PostgreSQLで学ぶBoyer-Moore-Horspoolアルゴリズム
by
Akio Ishida
Getting start with knockout.js
1.
Getting Started With Knockout.js 2013/07/27
Sapporo.js @iakio
2.
• 石田朗雄 • 普段は主にPHPを書いてます •
Knockout.jsは2011年にちょっと使ってみた程度
3.
今日話さないこと • MVCとかMVVMってなに? • 説明できません •
リアクティブプログラミングってなに? • 興味あるかたは調べてみましょう
4.
Knockout.jsとは • Backbone.js, Ember.js,
Angular.jsの次くらいに流 行っているのかも • Ember.js, Angular.jsと比べるとかなり小さい • Knockout.jsはフレームワークではなくライブラ リだ(ズギャーン • たぶん最も特徴的なのはDependency Tracking
5.
Knockout.jsのはじめかた • 公式のチュートリアルを2つくらいやる • APIを3,4個学ぶ •
Bindingを5から10個くらい学ぶ • とりあえずそれくらい
6.
それでなにをやりたいの • 本来書きたいことに集中したい • 変更の頻度が違うものは分けたい
7.
理想 • JavaScriptの状態(プロパティ)が変更されたら、 自動的に見た目も変更されるといいなあ • ブラウザ上でテキストボックスやドロップダウ ンを操作すると自動的にJavaScriptの状態に反 映されるといいなあ
8.
Getter/Setter {{price}} this.set(‘price’, 100); this.get(‘price’);
Ember.js <p data-bind=“text:price”> </p>又は <!-- ko text: price --> <!-- /ko --> this.price = ko.observable(); this.price(100); this.price(); Knockout.js {{price}} $scope.price = 100; $scope.price; Angular.js
9.
DEMO
10.
Dependency Tracking Total =
price * quantity
11.
jQuery イベントが発生したら、PriceとQuantityを取得し てTotalを書き換える $(“#quantity,#price”).on(“change”, function ()
{ $(“#total”).text( $(“#price”).text() * $(“#quantity”).text(); ); }); jQuery
12.
Totalはpriceとquantityから求められる total: function ()
{ return this.get(‘price’) * this.get(‘quantity’); }.property(‘price’, ‘quantity’); Ember.js this.total = ko.computed(function () { return this.price() * this.quantity(); }, this); Knockout.js
13.
すこしだけ仕組みについて • 定義された時点で一回呼んでみる • その間に呼ばれたGetterに依存している •
total()「今からトータル計算しまーす」 • price()「ん?トータル計算中に呼ばれた!」 • quantity()「ん?トータル計算中に呼ばれた!」 • price(100)「よーしtotal()再計算しちゃうぞー」 this.total = ko.computed(function () { return this.price() * this.quantity(); }, this); Knockout.js
14.
こういう場合は • 初回にflagが偽だとpriceとquantityが呼ばれな いので依存関係が記録されない this.total =
ko.computed(function () { if (this.flag) { return this.price() * this.quantity(); } else { … } }, this); Knockout.js
15.
こうする • 初回、priceとquantityの依存関係が記録されないが、 flagは記録されている • flagが真になるとtotalが呼ばれ、priceとquantityの 依存関係が記録される this.flag
= ko.observable(); this.total = ko.computed(function () { if (this.flag()) { return this.price() * this.quantity(); } else { … } }, this); Knockout.js
16.
考え方を変える • 例えばページャやフィルタ • 「次へ」を押されたら、ページ番号を+1する •
ページ番号に依存して • 現ページに表示するアイテムが変わる • 「前へ」「次へ」ボタンを表示するかが変わる • その他色々が自動的に変わる
17.
良いところ • 小さい。覚えることが少ない • ViewModelは単なるObject •
ModelとかControllerとかいう言葉がでてこない • セレクタから解放される • 本来書きたかったことに集中できる • Tutorialがよくできている
18.
注意点 • 全部入りではない • AjaxしたければjQueryを使う •
Routerが必要であればsammy.jsを使う • その他Pluginなどあるが、そこまでやるか • 多対一のような複雑なdependency • メソッド重複して呼ばれないよう注意 • ViewModelの肥大化 • 使いどころを選ぶ • SEOってなんだったっけ • Progressive Enhancement?
19.
Resources • http://knockoutjs.com • http://knockmeout.net •
http://blog.stevensanderson.com
Download