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
Narami Kiyokura
PDF, PPTX
2,716 views
How do you like knockout?
『合同勉強会 in 大都会岡山 -2014 Winter-』の同名のセッションの資料 http://gbdaitokai.doorkeeper.jp/events/15289
Technology
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 64
2
/ 64
3
/ 64
4
/ 64
5
/ 64
6
/ 64
7
/ 64
8
/ 64
9
/ 64
10
/ 64
11
/ 64
12
/ 64
13
/ 64
14
/ 64
15
/ 64
16
/ 64
17
/ 64
18
/ 64
19
/ 64
20
/ 64
21
/ 64
22
/ 64
23
/ 64
24
/ 64
25
/ 64
26
/ 64
27
/ 64
28
/ 64
29
/ 64
30
/ 64
31
/ 64
32
/ 64
33
/ 64
34
/ 64
35
/ 64
36
/ 64
37
/ 64
38
/ 64
39
/ 64
40
/ 64
41
/ 64
42
/ 64
43
/ 64
44
/ 64
45
/ 64
46
/ 64
47
/ 64
48
/ 64
49
/ 64
50
/ 64
51
/ 64
52
/ 64
53
/ 64
54
/ 64
55
/ 64
56
/ 64
57
/ 64
58
/ 64
59
/ 64
60
/ 64
61
/ 64
62
/ 64
63
/ 64
64
/ 64
More Related Content
PDF
ASP.NET "NOW" and "NEXT"
by
Narami Kiyokura
PDF
どうなる?Visual Studioの クライアントサイド web開発の今後
by
Narami Kiyokura
PPTX
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
by
Narami Kiyokura
PDF
無償版Visual StudioでいろいろWeb開発
by
Narami Kiyokura
PDF
WordPress開発の最新事情
by
Takayuki Miyauchi
PDF
フロントエンド初学者がSPAに手を出してみた
by
Kei Yagi
PDF
軽量フレームワークNancy
by
Narami Kiyokura
PDF
WordCamp Tokyo 2018 by ocws
by
kouki okuda
ASP.NET "NOW" and "NEXT"
by
Narami Kiyokura
どうなる?Visual Studioの クライアントサイド web開発の今後
by
Narami Kiyokura
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
by
Narami Kiyokura
無償版Visual StudioでいろいろWeb開発
by
Narami Kiyokura
WordPress開発の最新事情
by
Takayuki Miyauchi
フロントエンド初学者がSPAに手を出してみた
by
Kei Yagi
軽量フレームワークNancy
by
Narami Kiyokura
WordCamp Tokyo 2018 by ocws
by
kouki okuda
What's hot
PPTX
オレたちとVisual Studioとの関係を話そう
by
Mitsuhito Ishino
PDF
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
by
Kazue Igarashi
PPTX
[社内勉強会]SPAのすすめ
by
hirooooo
PDF
軽量ASP.NETフレームワークNancy
by
Narami Kiyokura
PDF
Web制作者が知っておきたいアクセシビリティ最新動向
by
Mitsue-Links Co.,Ltd. Accessibility Department
PDF
Media Assembly Kit
by
Hiromichi Koga
PDF
Spa のための web サーバ構築ノウハウ
by
Kazuhiro Kotsutsumi
PDF
AngularJSで業務システムUI部品化
by
Toshio Ehara
PPTX
20121215
by
小野 修司
PDF
使ってみよう、WebMatrix3
by
Narami Kiyokura
PDF
今後のWeb開発の未来を考えてangularJSにしました
by
Mitsuru Ogawa
PDF
three.jsによる一歩進めたグラフィカルな表現
by
Kei Yagi
PPTX
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
by
慎一 古賀
PPTX
Azure Appservice WebAppsでWordPressサイトを構築すると運用が劇的にラクになる話
by
典子 松本
PDF
なぜ、サイボウズでアクセシビリティなのか?
by
力也 伊原
PDF
WP-APIを使ってみよう&No PHPテーマという考え方
by
Hidetaka Okamoto
PDF
WorcCamp Kansai 2015 LT大会
by
Koji Asaga
PPTX
インフラ知識ゼロのWebデザイナーがAzureWebSitesを使ってみた話
by
典子 松本
PDF
a-blog cmsのインポート機能を使いこなす
by
Seiko Kuchida
PDF
最近のASP.NET事情2013Winter
by
Narami Kiyokura
オレたちとVisual Studioとの関係を話そう
by
Mitsuhito Ishino
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
by
Kazue Igarashi
[社内勉強会]SPAのすすめ
by
hirooooo
軽量ASP.NETフレームワークNancy
by
Narami Kiyokura
Web制作者が知っておきたいアクセシビリティ最新動向
by
Mitsue-Links Co.,Ltd. Accessibility Department
Media Assembly Kit
by
Hiromichi Koga
Spa のための web サーバ構築ノウハウ
by
Kazuhiro Kotsutsumi
AngularJSで業務システムUI部品化
by
Toshio Ehara
20121215
by
小野 修司
使ってみよう、WebMatrix3
by
Narami Kiyokura
今後のWeb開発の未来を考えてangularJSにしました
by
Mitsuru Ogawa
three.jsによる一歩進めたグラフィカルな表現
by
Kei Yagi
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
by
慎一 古賀
Azure Appservice WebAppsでWordPressサイトを構築すると運用が劇的にラクになる話
by
典子 松本
なぜ、サイボウズでアクセシビリティなのか?
by
力也 伊原
WP-APIを使ってみよう&No PHPテーマという考え方
by
Hidetaka Okamoto
WorcCamp Kansai 2015 LT大会
by
Koji Asaga
インフラ知識ゼロのWebデザイナーがAzureWebSitesを使ってみた話
by
典子 松本
a-blog cmsのインポート機能を使いこなす
by
Seiko Kuchida
最近のASP.NET事情2013Winter
by
Narami Kiyokura
Viewers also liked
PDF
TFS超入門。いつやるの。今でしょ
by
Takuya Kawabe
PDF
Gulp ことはじめ
by
Kyohei Morimoto
PDF
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
by
Jun-ichi Sakamoto
PDF
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
by
Jun-ichi Sakamoto
PPTX
「それでも人生にイエスと言う」を読んで
by
Shumpei Shiraishi
PPTX
HTML5がもたらすアプリ開発へのインパクト
by
Shumpei Shiraishi
PPTX
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
by
Shumpei Shiraishi
PPT
20130921レジュメ2
by
Shumpei Shiraishi
PDF
Introduction of "MarkdownPresenter"
by
Jun-ichi Sakamoto
PPTX
Reactive Programming
by
maruyama097
PDF
CLR/H#74 LT IT勉強会発表用イチオシツール
by
Jun-ichi Sakamoto
PDF
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
by
Akira Inoue
PDF
20140823 LL diver Angular.js で構築した note に関して
by
Shoei Takamaru
PDF
AngularJS 2.0 Jumpstart
by
Filipe Falcão
PPTX
はじめにことばありき
by
Shumpei Shiraishi
PPTX
秒速一億円
by
Shumpei Shiraishi
PDF
最近、リアルタイムWebが面白い
by
Narami Kiyokura
PPTX
「それでも人生にイエスと言う」を読んで
by
Shumpei Shiraishi
PDF
WebRTCがビデオ会議市場に与えるインパクトを探る
by
Shumpei Shiraishi
PDF
TypeScript And ALM
by
Kazushi Kamegawa
TFS超入門。いつやるの。今でしょ
by
Takuya Kawabe
Gulp ことはじめ
by
Kyohei Morimoto
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
by
Jun-ichi Sakamoto
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
by
Jun-ichi Sakamoto
「それでも人生にイエスと言う」を読んで
by
Shumpei Shiraishi
HTML5がもたらすアプリ開発へのインパクト
by
Shumpei Shiraishi
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
by
Shumpei Shiraishi
20130921レジュメ2
by
Shumpei Shiraishi
Introduction of "MarkdownPresenter"
by
Jun-ichi Sakamoto
Reactive Programming
by
maruyama097
CLR/H#74 LT IT勉強会発表用イチオシツール
by
Jun-ichi Sakamoto
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
by
Akira Inoue
20140823 LL diver Angular.js で構築した note に関して
by
Shoei Takamaru
AngularJS 2.0 Jumpstart
by
Filipe Falcão
はじめにことばありき
by
Shumpei Shiraishi
秒速一億円
by
Shumpei Shiraishi
最近、リアルタイムWebが面白い
by
Narami Kiyokura
「それでも人生にイエスと言う」を読んで
by
Shumpei Shiraishi
WebRTCがビデオ会議市場に与えるインパクトを探る
by
Shumpei Shiraishi
TypeScript And ALM
by
Kazushi Kamegawa
Similar to How do you like knockout?
PDF
Knockout_エンジニア勉強会20131120
by
エンジニア勉強会 エスキュービズム
PDF
Knockout.js を利用したインタラクティブ web アプリケーション開発
by
Daizen Ikehara
PDF
Knockout を用いた Firefox OS アプリケーションの開発
by
Kentaro Iizuka
PDF
作って分かるKnockoutJS@ALM11月
by
Takuya Ueda
KEY
Knockout
by
Kazuhiro Eguchi
PDF
実践Knockout
by
Kazuhiro Eguchi
PDF
Knockout handson
by
Go Tanaka
PDF
DevLOVE Kansai KnockoutJS
by
Go Tanaka
PPT
20130924 Picomon CRH勉強会
by
Yukihiro Kitazawa
PDF
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
by
Toshihiro Kawachi
PPTX
20140712 knockoutjs-hands-on-in-osaka
by
Seiji Noro
PDF
Pro aspnetmvc3framework chap19
by
Hideki Hashizume
PPTX
20140517 knockoutjs hands-on
by
Seiji Noro
PDF
RailsでKnockout.js
by
Makoto Henmi
PPTX
KnockoutJSを使用したアプリケーションの構築例
by
masakazusegawa
PDF
はじめよう Backbone.js
by
Hiroki Toyokawa
PPT
Client Side Cache
by
Toru Yamaguchi
PDF
Getting start with knockout.js
by
Akio Ishida
PDF
Introduction for Browser Side MVC
by
Ryunosuke SATO
PDF
Study Intro Backbone
by
Gensei Kawasaki
Knockout_エンジニア勉強会20131120
by
エンジニア勉強会 エスキュービズム
Knockout.js を利用したインタラクティブ web アプリケーション開発
by
Daizen Ikehara
Knockout を用いた Firefox OS アプリケーションの開発
by
Kentaro Iizuka
作って分かるKnockoutJS@ALM11月
by
Takuya Ueda
Knockout
by
Kazuhiro Eguchi
実践Knockout
by
Kazuhiro Eguchi
Knockout handson
by
Go Tanaka
DevLOVE Kansai KnockoutJS
by
Go Tanaka
20130924 Picomon CRH勉強会
by
Yukihiro Kitazawa
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
by
Toshihiro Kawachi
20140712 knockoutjs-hands-on-in-osaka
by
Seiji Noro
Pro aspnetmvc3framework chap19
by
Hideki Hashizume
20140517 knockoutjs hands-on
by
Seiji Noro
RailsでKnockout.js
by
Makoto Henmi
KnockoutJSを使用したアプリケーションの構築例
by
masakazusegawa
はじめよう Backbone.js
by
Hiroki Toyokawa
Client Side Cache
by
Toru Yamaguchi
Getting start with knockout.js
by
Akio Ishida
Introduction for Browser Side MVC
by
Ryunosuke SATO
Study Intro Backbone
by
Gensei Kawasaki
More from Narami Kiyokura
PPTX
Windows ストアアプリをHTMLで作成する
by
Narami Kiyokura
PDF
Visual Studioで始めるTypeScript開発入門
by
Narami Kiyokura
PDF
脱・Excelホーガンシのために、その1
by
Narami Kiyokura
PDF
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
by
Narami Kiyokura
PDF
よろしい、ならばMicro-ORMだ
by
Narami Kiyokura
PDF
WebMatrixで遊ぶ-ゆるふわGitHubページ
by
Narami Kiyokura
PDF
TypeScript超入門
by
Narami Kiyokura
PPTX
NuGetの社内利用のススメ
by
Narami Kiyokura
PDF
IMESupport for Sublime Text 2 / ConvertToUTF8の紹介
by
Narami Kiyokura
Windows ストアアプリをHTMLで作成する
by
Narami Kiyokura
Visual Studioで始めるTypeScript開発入門
by
Narami Kiyokura
脱・Excelホーガンシのために、その1
by
Narami Kiyokura
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
by
Narami Kiyokura
よろしい、ならばMicro-ORMだ
by
Narami Kiyokura
WebMatrixで遊ぶ-ゆるふわGitHubページ
by
Narami Kiyokura
TypeScript超入門
by
Narami Kiyokura
NuGetの社内利用のススメ
by
Narami Kiyokura
IMESupport for Sublime Text 2 / ConvertToUTF8の紹介
by
Narami Kiyokura
How do you like knockout?
1.
How do you
like knockout? 合同勉強会in 大都会岡山-2014 Winter- 2014/12/13 OITEC きよくらならみ
2.
自己紹介 •きよくらならみ –@kiyokura
–kiyokura.hateblo.jp •NET系の開発やWebアプリ開発 –Microsoft MVP for ASP.NET/IIS •近況:#R社
3.
コミュニティ紹介 •Okayama IT
Engineers Community –OITEC •.NET系・MS系のテクノロジが多い? –特にしばりはないので、色々welcome •http://oitec.vbstation.net/
4.
本日のお品書き •knockout.jsのぼんやりした説明 •はじめてのばいんでぃんぐ
•バインディングの基本 •その他、色々 •もうちょっとだけ 実用的かもしれない例 •まとめ
5.
knockout.jsのぼんやりした説明
6.
Declarative Bindings Automatic
UI Refresh Dependency Tracking Templating SimplifydynamicJavaScriptUIs withthe Model-View-ViewModelpattern
7.
なんのこっちゃ
8.
knockout.jsとは •JavaScriptのライブラリ –フレームワークとも言われるが…
•AngularJSなどと違いフルスタックではない •コンセプト –宣言型バインディング –自動的なUIの更新 –依存性の追跡 –テンプレート
9.
knockout.jsとは •http://knockoutjs.com/ •OSS
–MITライセンス –https://github.com/knockout
10.
こんなことができる(ようになる) •動的なUIをシンプルに構築 –JSとHTMLの依存関係を整理しやすく
–MVVMパターンの導入も視野に
11.
非機能的な特徴 •他のライブラリに依存しない –取り回しが良い
•機能がシンプル –学習コストが低い •導入のハードルが全体的に低い –「一部だけに使用」にも抵抗が少ない –サーバサイドの言語・フレームワークを選ばない –古いブラウザでも動作
12.
導入方法 •取り込み –webからDL
•公式サイトorgithub –bower •bower install knockout –NuGet •Install-Package knockoutjs •CDN –https://cdnjs.com/ –http://www.asp.net/ajax/cdn
13.
四の五の言ってもあれなので •knockoutの2大機能を中心に紹介
14.
はじめてのばいんでぃんぐ
15.
knockout 二大機能の一つ •「バインディング」をまずは軽く紹介
16.
バインディングとは •バインディング(binding) –縛りつける・結びつける
•UIとJSのオブジェクトを結びつける –「代入とは違うのだよ、代入とは!」 •バインド=宣言的 •代入=手続的
17.
例 varuser =
{ name: "きよくら", age: 20 }; このオブジェクトの値を… こんなHTMLに設定したい…とする
18.
data-bind属性 •data-*属性を利用 •「なにをどこにバインドするか」”宣言”
–なにを:JSのオブジェクト –どこに:どの属性 data-bind="value:name"
19.
ko.applyBindings() •HTMLと紐づけるオブジェクトを用意 •ko.applyBindings()で紐づけを実行
ko.applyBindings(user);
20.
knockoutによるバインディング <scripttype="text/javascript"> $(function()
{ varuser = { name: "kiyokura", age: 20 }; ko.applyBindings(user); }); </script> <p> name:<inputtype="text"data-bind="value:name" /><br/> age:<inputtype="text"data-bind="value:age" /><br/> </p>
21.
onemore thing, •これは「単方向」バインディング
–Not “One time” , but “One way” •UI側の更新が自動的にオブジェクトへ
22.
JS側のオブジェクトの値を確認してみる $("#btnCkeck").click( function()
{ alert(user.age); }); <inputtype="button" value="check"id="btnCkeck"/>
23.
JS側のオブジェクトの値を確認してみる
24.
単方向バインディング •オブジェクトをHTMLに結びつける –“代入”ではなく”宣言”
–UIの変更が自動的にオブジェクトへ •依存関係がシンプルに –JSからHTML(DOM)参照が消滅 •実際は0にならないケースあるが 間違いなく減る
25.
ごくシンプルな機能だが •これだけでも有効な場合がある –サーバサイドの比重が大きい場合など、
JSのコード量を減らせる(可能性) –HTMLとJSの依存関係を減らせる •生産性UP&保守性UP につながる可能性
26.
jQueryでやると… <inputtype="text"id="name"/> <inputtype="text"id="age"/>
varuser = { name: "kiyokura", age: 20 }; $("#name").val(user.name); $("#age").val(user.age);
27.
バインディングの基本
28.
「監視」を絡めたバインディング •二大機能のもう一方、「監視」 •バインディングの真骨頂(たぶん)
29.
Observable による状態の監視 varuser
= { name:ko.observable("kiyokura"), age: ko.observable(20) };
30.
Observable による状態の監視 varuser
= { name:ko.observable("kiyokura"), age: ko.observable(20) };
31.
オブジェクトを操作してみる $("#btnYounger").click(function() {
varage = user.age(); user.age(age -1); }); <inputtype="button" id="btnYounger"value="若返り" />
32.
オブジェクトの変更がUIへ
33.
双方向バインディング •「監視」という機能 –observableオブジェクトでラップ
•オブジェクトを監視し、UIに通知 –UIを自動更新 ko.observable() ko.observableArray()
34.
ついでに、もうちょっと •バインドできるのは“値”だけではない •その一例を少しだけ
35.
“計算結果”をバインド varUser =
function () { varself = this; self.name = ko.observable("kiyokura"); self.age= ko.observable(20); self.message= ko.computed( function() { returnself.name() + ", "+ self.age() + "さい"; }); }; varuser = new User(); <spandata-bind="text:message"></span>
36.
イベントにメソッドをバインド self.toYounger= function()
{ varage = user.age(); user.age(age -1); }; <inputtype="button"value="若返り" data-bind="click:toYounger" />
38.
双方向バインド •“監視”と”バインド”のko2大機能で •オブジェクトとUI双方向で監視・更新
•“状態”と”コマンド”可能な機構 –これを生かしてPDSの観点で設計・実装 •それ、MVVMいけるんじゃね
39.
その他、色々
40.
いろんなバインディング •テキストとか表現的な –visible
–text –html –css –style –attr
41.
いろんなバインディング •制御構文的な –foreach
–if –ifnot –with –component
42.
いろんなバインディング •フォーム部品関係 –click
–event –submit –enable –disable –value
43.
いろんなバインディング •フォーム部品関係 –textInput
–hasFocus –checked –options –selectedOptions –uniqueName
44.
いろんなバインディング •テンプレーティング –template
45.
カスタマイズや拡張 •カスタム・バインディング –バインディングをカスタマイズ可能
•extend –拡張メソッド(みたいな感じ)
46.
もうちょっとだけ 実用的かもしれない例
47.
もうちょっとだけ実用的かもしれない例 •例:json形式のデータを出し入れ •例:WebStorageへの保存機能を後付
48.
例:json形式のデータを出し入れ •先ほどまでの例だと… 「実際つかえるの?」
と思うかもしれません •ko.observableでイチイチラップしたオ ブジェクトを毎回定義するの? •大丈夫、無問題。
49.
ko.mappingプラグイン •オブジェクトやJSONを ko.observableでラップされた
オブジェクトを生成する varjsData= {name: "foo",age:20}; varvm= ko.mapping.fromJS(jsData);
50.
ko.mappingプラグイン •逆にプレーンなオブジェクトにマッピン グしなおすことも可能
varjson= ko.mapping.toJSON(vm);
51.
なので…こんなことも割と楽に可能 •ajaxでデータを取得してモデル作成 •モデルをJSON化してajaxで送信
52.
例:WebStorageへの保存機能を後付 •koは「ちょっとココだけ使う」ことも 比較的楽
•その一例 –https://github.com/kiyokura/komappingdemo
53.
何の変哲もないwebフォーム •「localStorageに一時保存させて」 と言われたたら?
<form action="register.php" method="post"> <p> 姓: <input type="text" name="lastName" /> 名: <input type="text" name="firstName" /><br/> tel: <input type="text" name="tel" /><br/> e-mail: <input type="text" name="email" /><br/> <hr/> <input type="submit" value="登録" /> </p> </form>
54.
それ、knockoutで JSからDOMを見てるが、こんな パターンなら別にいいんじゃな
いかと思う(個人的には)
55.
まとめ
56.
knockoutとは •UIとオブジェクトの 双方向バインディングを実現する
JSライブラリ •主要機能は監視とバインディング •"部分利用"から"フレームワーク"まで 場面に応じて利用可能
57.
knockout とは •OSS
–gihub –MITライセンス •依存関係もシンプル –ほかのJSライブラリに依存しない –サーバサイドのテクノロジにも依存しない •(RubyでもPHPでも.NETでも)
58.
個人的な感想 •つまみ食いしやすい –アプリのアーキテクチャに食い込まない
(ような使い方が可能) •サーバサイドのフレームワークとも 相性がいいと思う –学習コストが低い
59.
参考・リソース
60.
公式サイト •http://knockoutjs.com/ •ドキュメントとチュートリアルが充実
–ここの情報だけだいたいどうにかなる –チュートリアルもとっつきが良い
61.
おすすめ資料 •『Knockout.jsの概要』 –by
MayukiSawatari –https://speakerdeck.com/mayuki/knockout-dot-jsfalsegai-yao •knockoutの二大機能の仕組みを丁寧にわか りやすく解説。おすすめ。 •動画もあります。 –https://www.youtube.com/watch?v=U- TRaV3IU6A
62.
気軽に試すならjsfiddleで •http://jsfiddle.net/ •ブラウザでJavaScriptを試せる
–保存やシェアもできるよ •メジャーなライブラリを標準サポート –knockoutも対応
63.
番外編-JSFiddleのポイント(?) •jQueryとknockoutを使うなら –[Frameworks
& Extensions] •jQueryを選択 –[External Resources] •knockoutのCDNを指定 –http://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout- min.js
64.
ご清聴ありがとうございました
Download