20140517 knockoutjs hands-on

Preview:

Citation preview

KnockoutJSHands-On Visual Studio

Knockoutjs 勉強会の内容初心者向け JavaScript 入門からテラ・コーティングまで! JavaScriptフレームワークの主流、 MVVM アーキテクチャパターンを採用している knockoutjs を堪能する!

1

http://atnd.org/events/50026

自己紹介 名前 : 野呂清二 Twitter : @seinoro Facebook : seiji.noro 言語 :C#, JavaScript (C++, Java)

Microsoft MVP for Office365 <

http://mvp.microsoft.com/ja-jp/mvp/Seiji%20Noro-5000492>

2

参考文献

Knockout handson http://

www.slideshare.net/tanago3/knockout-handson

Knockout 日本語ドキュメント http://kojs.sukobuto.com/

3

ハンズオンの流れ

環境のセットアップ

足し算アプリを作る

TODO アプリを作る

4

環境のセットアップ5

Setup

6

Setup

Visual Studio のインストール

Visual Studio 2013 90 日間の無償評価版 http://www.visualstudio.com/ja-jp/downloads/download-v

isual-studio-vs.aspx Microsoft Visual Studio Professional 2013 Update 2

Microsoft Visual Studio Express 2013 for Web でも可能と思われる。

7

Setup

新規プロジェクト作成① ファイル / 新規作成 / プロジェクト②Visual C#/Web/ASP.NET Web アプリケーション③MVC/④ 認証なし

8

Setup

KnockoutJS インストール① ツール / ライブラリーパッケージマネジャー / ソリューションの NuGet パッケージの管理②Knockoutjs インストール

9

Setup

確認以下のように Knockout.js が組み込まれています。

10

Setup

足し算アプリを作る11

足し算

ソースプログラム

Knockout.js で足し算アプリ (Visual Studio2013) http://tech.exceedone.co.jp/javascript/visualstudio-2013-m

vc5-with-twitterbootstrap-caluculate/

12

足し算

13 HTML (/Views/Home/index.cshtml)

足し算

14 JavaScript(/Scripts/test.js)

足し算

デバック (F5) で動かしてみる。※ F9 でブレイクポイント

足し算

15

実行結果足し算

16

ko.observable()値の変更を監視します・主に UI と同期するために使用

※ko.observableArray() は後述

ko.observable

足し算

17

ko.computed(f)利用している ko.observable の値が変わると実行される

ko.computed 内で利用している ko.observable

ko.computed

足し算

18

data-bind

“value” binding は <input>, <select>, <textarea> のようなフォーム要素に使用する。

“text” binding は <span>, <em> のような表示するための要素に使用する。※ 基本的に何でもイケル。 number, string 以外の値をいれたら toString した値が表示される

“visible”, “style”, “attr”, “html”, “css”, “custom” などの binding がある

足し算

19

ko.applyBindings(vm,node)

足し算

20

TODO アプリを作る21

Todo

ソースプログラム

Knockout.js で Todo アプリ (Visual Studio2013 http://tech.exceedone.co.jp/javascript/visualstudio-2013-m

vc5-with-twitterbootstrap-todos/

Todo

22

23

HTML (/Views/Home/index.cshtml)

Todo

24 JavaScript(/Scripts/test.js)

Todo

実行結果Todo

25

26 Add ボタンのアクション追加Todo

Index.cshtml

test.js

実行結果27

Todo

28 TaskList に追加するTodo

test.js

TaskList に追加する29

Index.cshtml

foreach バインディング

Todo

実行結果30

Todo

31 delete ボタンのアクション追加

Todo

test.js

delete ボタンのアクション追加

32

Index.cshtml

$parent: 親 ViewModel オブジェクト

その他にも$root: 最上位のコンテキストの ViewModel オブジェクト$data: 現在のコンテキストの ViewModel オブジェクト$index: foreach バインディング内で使用できる配列のインデックス

Todo

時間が余ったら33

時間が余ったら くつろぐ、 knockout 等で回りの人と談話する。 周りでできてない人の Help

他の課題(準備できていたら)

以下をみてみるとか SPA(Single Page Application) for knockout.js +

TwitterBootstrap + Sammy.js + SQL Azure + Visual Studio2013

http://tech.exceedone.co.jp/javascript/visualstudio-2013-mvc5-with-twitterbootstrap-knockout-spa/

34

補足デバックについて35

Internet ExplorerGoogle Chrome はブレイクポイントはとまりません。

36

.cshtml でのデバックcshtml では、ブレイクポイントはとまりませんのでdebugger と入力します。

37

.js でのデバック.js ブレイクポイントはとまります。

38

ありがとうございました!!39