Submit Search
Upload
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
•
4 likes
•
5,711 views
Toshihiro Kawachi
Follow
knockoutjsハンズオン勉強会 – 2014/05/17 – Microsoft 品川での発表資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 20
Download now
Download to read offline
Recommended
20140517 knockoutjs hands-on
20140517 knockoutjs hands-on
Seiji Noro
Knockout.js を利用したインタラクティブ web アプリケーション開発
Knockout.js を利用したインタラクティブ web アプリケーション開発
Daizen Ikehara
KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例
masakazusegawa
作って分かるKnockoutJS@ALM11月
作って分かるKnockoutJS@ALM11月
Takuya Ueda
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
Seki Yousuke
Vue.js入門
Vue.js入門
Takuya Sato
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
masakazusegawa
ライオンでも分かるVuejs
ライオンでも分かるVuejs
lion-man
Recommended
20140517 knockoutjs hands-on
20140517 knockoutjs hands-on
Seiji Noro
Knockout.js を利用したインタラクティブ web アプリケーション開発
Knockout.js を利用したインタラクティブ web アプリケーション開発
Daizen Ikehara
KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例
masakazusegawa
作って分かるKnockoutJS@ALM11月
作って分かるKnockoutJS@ALM11月
Takuya Ueda
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
Seki Yousuke
Vue.js入門
Vue.js入門
Takuya Sato
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
masakazusegawa
ライオンでも分かるVuejs
ライオンでも分かるVuejs
lion-man
React.js + Flux
React.js + Flux
dsuke Takaoka
Vue.jsでさくっとMVVM
Vue.jsでさくっとMVVM
Satoshi Anai
はじめてのVue.js
はじめてのVue.js
kamiyam .
( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!
Yuki Ishikawa
AngularJSを浅めに紹介します
AngularJSを浅めに紹介します
nkazuki
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
normalian
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~
Oda Shinsuke
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話
yoshioka_cb
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
Akira Inoue
Brush up your Coding! 2013 winter
Brush up your Coding! 2013 winter
Shogo Sensui
DevLOVE Kansai KnockoutJS
DevLOVE Kansai KnockoutJS
Go Tanaka
ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門
Masuda Tomoaki
React を導入したフロントエンド開発
React を導入したフロントエンド開発
daisuke-a-matsui
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
Daizen Ikehara
簡単AngularJS(関西AngularJS勉強会)
簡単AngularJS(関西AngularJS勉強会)
Takahiro Maki
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソ
Yoshitaka Seo
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
Hiroshi Maekawa
One ASP.NET の今とこれから
One ASP.NET の今とこれから
Akira Inoue
MvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かう
Shun Hikita
More Related Content
What's hot
React.js + Flux
React.js + Flux
dsuke Takaoka
Vue.jsでさくっとMVVM
Vue.jsでさくっとMVVM
Satoshi Anai
はじめてのVue.js
はじめてのVue.js
kamiyam .
( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!
Yuki Ishikawa
AngularJSを浅めに紹介します
AngularJSを浅めに紹介します
nkazuki
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
normalian
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~
Oda Shinsuke
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話
yoshioka_cb
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
Akira Inoue
Brush up your Coding! 2013 winter
Brush up your Coding! 2013 winter
Shogo Sensui
DevLOVE Kansai KnockoutJS
DevLOVE Kansai KnockoutJS
Go Tanaka
ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門
Masuda Tomoaki
React を導入したフロントエンド開発
React を導入したフロントエンド開発
daisuke-a-matsui
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
Daizen Ikehara
簡単AngularJS(関西AngularJS勉強会)
簡単AngularJS(関西AngularJS勉強会)
Takahiro Maki
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソ
Yoshitaka Seo
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
Hiroshi Maekawa
What's hot
(20)
React.js + Flux
React.js + Flux
Vue.jsでさくっとMVVM
Vue.jsでさくっとMVVM
はじめてのVue.js
はじめてのVue.js
( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!
AngularJSを浅めに紹介します
AngularJSを浅めに紹介します
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
Brush up your Coding! 2013 winter
Brush up your Coding! 2013 winter
DevLOVE Kansai KnockoutJS
DevLOVE Kansai KnockoutJS
ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門
React を導入したフロントエンド開発
React を導入したフロントエンド開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
簡単AngularJS(関西AngularJS勉強会)
簡単AngularJS(関西AngularJS勉強会)
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソ
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
Similar to KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
One ASP.NET の今とこれから
One ASP.NET の今とこれから
Akira Inoue
MvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かう
Shun Hikita
2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
Shumpei Shiraishi
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
Akira Inoue
ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)
Atsushi Yokohama (BEACHSIDE)
PHPerでもわかる!実践Webアクセシビリティ
PHPerでもわかる!実践Webアクセシビリティ
shiori koga
Hello, Node.js
Hello, Node.js
Shin Sekaryo
PHP-Ninjaの裏側
PHP-Ninjaの裏側
Takayuki Miyauchi
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
Yusuke Wada
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
VirtualTech Japan Inc.
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
Nobuyuki Tamaoki
クラウド時代のインフラ動向
クラウド時代のインフラ動向
Ryoichi Taga
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
de:code 2017
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
normalian
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 -
SORACOM, INC
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
Toshiro Shimizu
Cloud Native Application on DEIS by using 12 factor
Cloud Native Application on DEIS by using 12 factor
Yoshio Terada
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
慎一 古賀
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
Yasuhiro Yoshimura
Similar to KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
(20)
One ASP.NET の今とこれから
One ASP.NET の今とこれから
MvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かう
2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)
PHPerでもわかる!実践Webアクセシビリティ
PHPerでもわかる!実践Webアクセシビリティ
Hello, Node.js
Hello, Node.js
PHP-Ninjaの裏側
PHP-Ninjaの裏側
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
クラウド時代のインフラ動向
クラウド時代のインフラ動向
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 -
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
Cloud Native Application on DEIS by using 12 factor
Cloud Native Application on DEIS by using 12 factor
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
Recently uploaded
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Recently uploaded
(9)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
1.
プロジェクトにMVVMを適用する 狙い KnockoutJS勉強会 2014年5月17日
2.
自己紹介
3.
中規模業務系Webシステムのリプレースプロ ジェクトを、従来型Webシステム+Ajaxで準備 していたが、突然、SPAっぽくやることに。 クライアントサイドフレームワークを検討。 各種勉強会に出まくって情報収集 従来型とのハイブリッドでも適合しそうな KnockoutJSの採用を決定し準備。 現在、実装メンバーと合流し実装着手。 経緯
4.
今回の趣旨 プロジェクトの方針説明的な 従来型Webからクライアントサイドにっ 重心を移動した場合の構成について
5.
ターゲット 「SPAっぽいのでやってよ」って突然 振られそうな空気を感じている人 最近突然湧きあがったjQuery批判に戸 惑いを隠せない人 私の今のプロジェクトに参加しそうな 人
6.
アジェンダ KnockoutJSって何? MVVM? Webシステムの構成の変遷 手ごたえ
7.
とは JavaScriptのクライアントサイドフレームワーク Microsoftの社員の一人がOSSとして開発そうな。 MS製ではないが関連は深いとか。
MVVMのアーキテクチャパターンを採用 Ajax通信メインの SinglePageApplication/MultiPageApplicationを作りや すい 宣言型バインディングによるリアクティブプログラミングの スタイル Model-Driven-View Angular.js、Backbone.jsと比較
8.
MVVMとは アプリケーションをModel-View-ViewModelに分割するアプ リケーションのアーキテクチャパターンの手法 Modelとは 定義としては、ドメイン領域のデータを具現化したオブ ジェクト。 Viewとは 可視化できる画面。データの入出力部分。 View-Modelの状態を常に画面に反映し続ける。 View-Modelとは ModelとViewの橋渡し的存在。 ViewがModelのデータをViewからバインディングできる ようにする役割。
9.
(ボクが考える)MVVM概念図 • ViewはViewModelをデータバインディングで追従。 • ViewModelを監視して、変更を自動的に反映する •
ViewModelはViewを知らない(依存しない)。Modelの情報を監視 可能(Observable)な状態にして、外部(View)に提供する。 • Modelは他の存在を気にせず、依存もしない。 • 主にビジネス領域のデータを格納するだけ。
10.
データバインディングの例 価格:<input type=“text” data-bind=“value:price”
id=“priceText”> 消費税率:<span data-bind=“text:taxRate” id=“taxSpan”> % <hr> 税込金額:<span data-bind=“text:taxIncluded” id=“taxIncludedSpan”> 円 1000価格: 8消費税率: % 税込金額: 1080 円 function SomeViewModel(){ this.price = ko.observable(1000); this.taxRate = ko.observable(8); this.taxInclude=ko.computed(function(){ return calcTaxRate(this.price,this.taxRate); }); } 価格を2000にすると、税込金額は2160に変わる
11.
data-binding
12.
MVVMとデータバインディングのうまみ Viewからロジックを追い出せる。分離できる。 data-bindingでViewModelの変数やメソッドを指定するだけ
Viewのコントロール同士の連携をシンプルにできる。 Viewのレイアウト変更にロジックが影響を受けない。 処理の起点がView(DOM)にない。 ViewはViewModelを追いかけているだけ。 DOMはViewModelの変更を受けて勝手に変わる。そこがリアクティブ。 ViewModelの使いまわしが可能。 ViewModelはViewに依存しない。 Viewにデータを置かなくていい。 データはViewModelで管理して、最終的にModelに反映。 Ajax通信時にFormからJSONやQueryStringを組み立てる必要がない。 それがいろいろはかどる!
13.
jQueryのオンリー構成 まず初めに対象のデータを選ぶDOMを選んでから処理を実行 $(“#price”).change(calcTaxInclude);
レイアウトが変わると、、、 val = $(this).closest(“table”).children(“span.target”).text(“Changed!”); いろいろはかどらなくなったり UnitTestでブラウザが必須だったり $(function(){ $document.on(”change”, “.target”,(function(e){…})); }); とか、テストフレームワークでテストできないロジック書いてしまいがち。
14.
例えば、こんな画面 製品マスタに構成部品を追加する。 「追加」で一覧に登録 できれば「登録」で親子を一括登録し たい。
15.
従来型:ブラウザRequestで画面書き換え型 製品登録 製品情報退避 serverclient 追加 Session 部品追加 画面 DB 製品登録 追加部品情報退避 製品情報取り出し 永続化処理 追加 登録
16.
一部Ajaxを取り入れた DOMベースのJavaScript活用型 製品登録 serverclient 追加 部品追加 画面 DB 永続化処理 登録 追加 $(“部品1”).data(“code”,”FRAME1000”) $(“部品2”).data(“code”,”TIRE1000”) $(“部品3”).data(“code”,”CMP1000”) 製品登録 <inupt type=“hidden” name=“部品1”> <input
type=“hidden” name=“部品2> <input type=“hidden” name=“部品3> POST/GET OR
17.
View ViewModel ViewMod el ViewMod el ViewMod elModel 今回 MVVM活用でのクライアントデータ保持型 製品登録 serverclient 追加 部品追加 画面 DBDataAccess 登録 追加 { product:製品データ, 部品Array:[部品1,部品2,部品3,部品4,部品5] } Data-Bind Ajax通信 (JSON)
18.
jQueryとの連携 Ajax通信はKnockout範囲外でDeferred/Promiseを活用。 DOMを直接指定して操作するScriptは使わない。
ViewModelはViewのことは知らない。一方的に呼び出されるだけ。 jQueryのプラグインはどう使う? バインディングの自作。カスタムバインディングの中で呼び出す。 カスタムバインディング中では、定義されているDOMがわかる。 Viewを動かすのはすべてKnockoutの範囲内にする? ビジネスロジックに一切からまない見た目だけの処理は document.readyでベタに書くのもありかと。 マウスオーバーで表示領域を拡大するとか。
19.
手応え メリット ViewModel/ModelをそのままJSONとして投げられるのは楽 クライアント側のhiddenでデータ持ちまわす泥臭さがなくなった。 画面非表示になった削除対象キーも裏で保持しておける。
クライアント側で状態を持つため、複数Windowを開かれた場合の対応が 楽 データと表示フォーマットの分離 Viewの責務をサーバー側から追い出すことができた。 和暦入出力の変換処理がサーバー側で不要になった。 Model/ViewModelはDate⇔CustomBindingで和暦に変換⇔HTMLは和暦 悩みどころ 表示完了までのワンテンポのずれ HTMLがロードされた後、ko.bidingContext時にDOMが動く。 FOUCっぽい現象。現在調整中。
20.
ありがとうございました
Download now