Submit Search
Upload
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
•
4 likes
•
7,444 views
Yuta Ohashi
Follow
Laravel/Vue.js 勉強会 #10
Read less
Read more
Technology
Report
Share
Report
Share
1 of 72
Download now
Download to read offline
Recommended
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
infinite_loop
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
20160526 依存関係逆転の原則
20160526 依存関係逆転の原則
bonjin6770 Kurosawa
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
Recommended
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
infinite_loop
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
20160526 依存関係逆転の原則
20160526 依存関係逆転の原則
bonjin6770 Kurosawa
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
実践 NestJS
実践 NestJS
Ayumi Goto
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
Yoshitaka Kawashima
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
例外設計における大罪
例外設計における大罪
Takuto Wada
Riverpodでテストを書こう
Riverpodでテストを書こう
Shinnosuke Tokuda
SPAのルーティングの話
SPAのルーティングの話
ushiboy
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
Shumpei Shiraishi
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
More Related Content
What's hot
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
実践 NestJS
実践 NestJS
Ayumi Goto
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
Yoshitaka Kawashima
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
例外設計における大罪
例外設計における大罪
Takuto Wada
Riverpodでテストを書こう
Riverpodでテストを書こう
Shinnosuke Tokuda
SPAのルーティングの話
SPAのルーティングの話
ushiboy
What's hot
(20)
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
SpringBootTest入門
SpringBootTest入門
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
実践 NestJS
実践 NestJS
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
例外設計における大罪
例外設計における大罪
Riverpodでテストを書こう
Riverpodでテストを書こう
SPAのルーティングの話
SPAのルーティングの話
Similar to Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
Shumpei Shiraishi
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
「エクストリームエンジニアへの道(Swift編)」
「エクストリームエンジニアへの道(Swift編)」
tech-arts
Apache Tapestry
Apache Tapestry
Akio Katayama
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
terurou
goog.ui.Component のはぐれかた
goog.ui.Component のはぐれかた
Soichi Takamura
mishimasyk#4
mishimasyk#4
Takayuki Serizawa
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
kunihikokaneko1
jQuery超入門編
jQuery超入門編
Yasuhito Yabe
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
Atsushi Fukui
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
Apache Torqueについて
Apache Torqueについて
tako pons
ScalaMatsuri 2016
ScalaMatsuri 2016
Yoshitaka Fujii
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
Hidekazu Ishikawa
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
AdvancedTechNight
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
Shintaro Hosoai
Jqm20120210
Jqm20120210
cmtomoda
Django Rest Frameworkでお手軽にREST APIを作る
Django Rest Frameworkでお手軽にREST APIを作る
Matsuo Keita
Similar to Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
(20)
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
「エクストリームエンジニアへの道(Swift編)」
「エクストリームエンジニアへの道(Swift編)」
Apache Tapestry
Apache Tapestry
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
goog.ui.Component のはぐれかた
goog.ui.Component のはぐれかた
mishimasyk#4
mishimasyk#4
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
jQuery超入門編
jQuery超入門編
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Apache Torqueについて
Apache Torqueについて
ScalaMatsuri 2016
ScalaMatsuri 2016
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
Jqm20120210
Jqm20120210
Django Rest Frameworkでお手軽にREST APIを作る
Django Rest Frameworkでお手軽にREST APIを作る
More from Yuta Ohashi
三項演算子を見ると「ウッ」てなる人のはなし
三項演算子を見ると「ウッ」てなる人のはなし
Yuta Ohashi
レガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合う
Yuta Ohashi
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Yuta Ohashi
Laravelで式年遷宮中の現場でうまくいってること・うまくいっていないこと
Laravelで式年遷宮中の現場でうまくいってること・うまくいっていないこと
Yuta Ohashi
GoでシュッとWebスクレイピングする
GoでシュッとWebスクレイピングする
Yuta Ohashi
初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだこと
Yuta Ohashi
今日からGoをはじめる人に伝えたい$GOPATHではまった話
今日からGoをはじめる人に伝えたい$GOPATHではまった話
Yuta Ohashi
「Laravelから学びレガシーと闘いはじめた」のその後
「Laravelから学びレガシーと闘いはじめた」のその後
Yuta Ohashi
無知の表明でチームをビルドする
無知の表明でチームをビルドする
Yuta Ohashi
許可を求めるな謝罪せよ?
許可を求めるな謝罪せよ?
Yuta Ohashi
Laravelから学びレガシーと闘いはじめた
Laravelから学びレガシーと闘いはじめた
Yuta Ohashi
2016年恥ずかしいふりかえり
2016年恥ずかしいふりかえり
Yuta Ohashi
My開発環境の話
My開発環境の話
Yuta Ohashi
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったこと
Yuta Ohashi
LaravelアプリケーションをSeleniumでテストしてみた
LaravelアプリケーションをSeleniumでテストしてみた
Yuta Ohashi
Dockerをすこーしさわってみる
Dockerをすこーしさわってみる
Yuta Ohashi
5分でなんとなーくわかるDocker
5分でなんとなーくわかるDocker
Yuta Ohashi
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
Yuta Ohashi
More from Yuta Ohashi
(18)
三項演算子を見ると「ウッ」てなる人のはなし
三項演算子を見ると「ウッ」てなる人のはなし
レガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合う
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravelで式年遷宮中の現場でうまくいってること・うまくいっていないこと
Laravelで式年遷宮中の現場でうまくいってること・うまくいっていないこと
GoでシュッとWebスクレイピングする
GoでシュッとWebスクレイピングする
初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだこと
今日からGoをはじめる人に伝えたい$GOPATHではまった話
今日からGoをはじめる人に伝えたい$GOPATHではまった話
「Laravelから学びレガシーと闘いはじめた」のその後
「Laravelから学びレガシーと闘いはじめた」のその後
無知の表明でチームをビルドする
無知の表明でチームをビルドする
許可を求めるな謝罪せよ?
許可を求めるな謝罪せよ?
Laravelから学びレガシーと闘いはじめた
Laravelから学びレガシーと闘いはじめた
2016年恥ずかしいふりかえり
2016年恥ずかしいふりかえり
My開発環境の話
My開発環境の話
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったこと
LaravelアプリケーションをSeleniumでテストしてみた
LaravelアプリケーションをSeleniumでテストしてみた
Dockerをすこーしさわってみる
Dockerをすこーしさわってみる
5分でなんとなーくわかるDocker
5分でなんとなーくわかるDocker
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
Recently uploaded
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
atsushi061452
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
Recently uploaded
(14)
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
1.
Vue.jsでFormを Atomic Designしてみた時の コンポーネント間の データのやりとり Laravel/Vue.js勉強会 #10 2019/07/18 Yuta
Ohashi
2.
2 blue_goheimochi ⻘ごへいもち 株式会社オウケイウェイヴ PHP(Laravel), Javascript(Vue.js/Nuxt.js) Docker, Golang, DDD
… おおはし ゆうた
3.
3 今⽇話すこと • Atomic Designって︖ •
Formをコンポーネントに分解してみる • コンポーネント間のデータのやりとり • まとめ
4.
4 Atomic Designって︖
5.
5 Atomic Designって︖ http://atomicdesign.bradfrost.com/
6.
6 Atomic Designって︖ • Bread
Frostさんが提唱 • Atomsが集まってMoleculesに、Moleculesが集まってOrganismsに、 Organismsが集まって・・・・Pageができる • ⼤きな要素を細分化して、⼩さい要素として捉える • 詳細は「Atomic Designとは︖」で検索 & 原典を参照ください
7.
7 Formを コンポーネントに 分解してみる
8.
8 Formをコンポーネントに分解してみる
9.
9 Formをコンポーネントに分解してみる
10.
10 Formをコンポーネントに分解してみる Pages
11.
11 Formをコンポーネントに分解してみる ここになにかが⼊る
12.
12 Formをコンポーネントに分解してみる ここになにかが⼊るTemplates
13.
13 Formをコンポーネントに分解してみる
14.
14 Formをコンポーネントに分解してみる Organisms
15.
15 Formをコンポーネントに分解してみる
16.
16 Formをコンポーネントに分解してみる Molecules Molecules Molecules Molecules Molecules
17.
17 Formをコンポーネントに分解してみる
18.
18 Formをコンポーネントに分解してみる Atom Atom Atom Atom Atom Atom Atom Atom Atom Atom Atom Atom Atom Atom Atom Atom
19.
19 Formをコンポーネントに分解してみる
20.
20 Formをコンポーネントに分解してみる
21.
21 Formをコンポーネントに分解してみる
22.
22 Formをコンポーネントに分解してみる
23.
23 コンポーネント間の データのやりとり
24.
24 コンポーネント間のデータのやりとり • 基本的にデータはPagesかOrganismsで管理する • APIコールやStoreでデータを取得・保持する場合もPagesかOrganismsで •
要するに、MoleculesやAtomsは状態をなるべく持たないようにする • 親⼦のコンポーネント間のやり取りは props in / events out で • 親から⼦にはpropsでデータを渡す • 親でpropsの値が変更されれば⼦に伝搬する • ⼦から親には$emitでイベントを発⾏し、データの変更を伝える • 親コンポーネントが⼦のイベントを検知する
25.
25 コンポーネント間のデータのやりとり • 基本的にデータはPagesかOrganismsで管理する • APIコールやStoreでデータを取得・保持する場合もPagesかOrganismsで •
要するに、MoleculesやAtomsは状態をなるべく持たないようにする • 親⼦のコンポーネント間のやり取りは props in / events out で • 親から⼦にはpropsでデータを渡す • 親でpropsの値が変更されれば⼦に伝搬する • ⼦から親には$emitでイベントを発⾏し、データの変更を伝える • 親コンポーネントが⼦のイベントを検知する
26.
26 コンポーネント間のデータのやりとり
27.
27 コンポーネント間のデータのやりとり export default { data
() { return { user_id: "", password: "", mail_address: "", gender_box: "", birthday: "" } } } Organismsでデータを保持する
28.
28 コンポーネント間のデータのやりとり <template> <form> <user-id-box :user_id="user_id" @change="changeUserId"
/> <password-box :password="password" @change="~" /> <mail-address-box :mail_address="mail_address" @change="~" /> <gender-box :gender="gender" @change="~" /> <birthday-box :birthday="birthday" @change="~" /> <submit-button @click="doRegister">登録</submit-button> </form> </template> propsでデータを ⼦コンポーネント(Molecules)に渡す
29.
29 コンポーネント間のデータのやりとり
30.
30 コンポーネント間のデータのやりとり export default { props:
{ user_id: String }, methods: { changeUserId: function (user_id) { this.$emit("change", user_id) } } } 親(Organisms)から propsでデータを受け取る
31.
31 コンポーネント間のデータのやりとり <template> <div> <form-label for="user_id">ユーザーID:</form-label> <input-text :value="user_id"
@change="changeUserId"/> </div> </template> さらに⼦コンポーネント(Atoms)に propsでデータを渡す
32.
32 コンポーネント間のデータのやりとり <template> <div> <form-label for="user_id">ユーザーID:</form-label> <input-text :value="user_id"
@change="changeUserId"/> </div> </template> さらに⼦コンポーネント(Atoms)に propsでデータを渡す v-bind:value で渡すのがここではちょっと重要 (Atomsのコンポーネントで v-modelを使うため)
33.
33 コンポーネント間のデータのやりとり
34.
34 コンポーネント間のデータのやりとりexport default { props:
{ value: String }, computed: { input_text: { get: function () { return this.value }, set: function (value) { this.$emit("change", value) } } } } 親(Molecules)から propsでデータを受け取る
35.
35 コンポーネント間のデータのやりとり Atomは最⼩の要素 Inputなのでフォーム⼊⼒バインディングを利⽤ https://jp.vuejs.org/v2/guide/forms.html <template> <input type="text" v-model="input_text"> </template>
36.
36 コンポーネント間のデータのやりとり <template> <input type="text" v-model="input_text"> </template> v-modelはv-bind:valueとv-on:inputを ⼀度に設定してくれている https://jp.vuejs.org/v2/guide/components.html#コンポーネントで-v-model-を使う <template> <input
type="text” :value="input_text” @input="input_text = $event.$target.value”> </template>
37.
37 コンポーネント間のデータのやりとりexport default { props:
{ value: String }, computed: { input_text: { get: function () { return this.value }, set: function (value) { this.$emit("change", value) } } } } v-modelの値の変更は computedプロパティで知る (のが多分定⽯) https://jp.vuejs.org/v2/guide/computed.html算出-Setter-関数
38.
38 コンポーネント間のデータのやりとりexport default { props:
{ value: String }, computed: { input_text: { get: function () { return this.value }, set: function (value) { this.$emit("change", value) } } } } inputの⼊⼒に変更があった場合に ⼦コンポーネント(Atoms)がイベントを発⾏ 親コンポーネント(Molecules)でそのイベントを検知する
39.
39 コンポーネント間のデータのやりとりexport default { props:
{ value: String }, computed: { input_text: { get: function () { return this.value }, set: function (value) { this.$emit("change", value) } } } } 親コンポーネント(Molecules)に 変更を伝える場合は$emitを使う 下記の場合は、 親コンポーネントで定義した changeイベントが呼び出され、valueの値を⼀緒に送る
40.
40 コンポーネント間のデータのやりとり <template> <div> <form-label for="user_id">ユーザーID:</form-label> <input-text :value="user_id"
@change="changeUserId"/> </div> </template> ⼦コンポーネント(Atoms)のイベントを検知して changeのイベントが呼び出されるので changeUserIdを実⾏する
41.
41 コンポーネント間のデータのやりとり export default { props:
{ user_id: String }, methods: { changeUserId: function (user_id) { this.$emit("change", user_id) } } } ⼦コンポーネント(Atoms)から引数に 変更された値が渡ってくるので ⼦コンポーネント(Molecules)でイベントを発⾏し 親コンポーネント(Organisms)でそのイベントを検知する
42.
42 コンポーネント間のデータのやりとり <template> <form> <user-id-box :user_id="user_id" @change="changeUserId"
/> <password-box :password="password" @change="~" /> <mail-address-box :mail_address="mail_address" @change="~" /> <gender-box :gender="gender" @change="~" /> <birthday-box :birthday="birthday" @change="~" /> <submit-button @click="doRegister">登録</submit-button> </form> </template> ⼦コンポーネント(Molecules)のイベントを検知して changeのイベントが呼び出されるので changeUserIdを実⾏する
43.
43 コンポーネント間のデータのやりとり export default { data
() { return { user_id: "", password: null, ~~~~~~ } }, methods: { changeUserId (user_id) { this.user_id = user_id } } } ⼦コンポーネント(Molecules)から引数に 変更された値が渡ってくるので Organismsのdataを変更する
44.
44 コンポーネント間のデータのやりとり export default { data
() { return { user_id: "blue-goheimochi", password: null, ~~~~~~ } }, methods: { changeUserId (user_id) { this.user_id = user_id } } } dataが変更されると 親から⼦に変更が伝わってデータが更新される ⼦コンポーネントでは値を管理せず、 親のコンポーネントでpropsを変更することで ⼦コンポーネントに伝搬させる
45.
わかりづらい
46.
46 画⾯キャプチャを⾒ながら もう⼀度
47.
47 コンポーネント間のデータのやりとり OrganismsからMoleculesにprops経由でデータ(空の値)が渡る
48.
48 コンポーネント間のデータのやりとり MoleculesからAtomsにprops経由でデータ(空の値)が渡る
49.
49 コンポーネント間のデータのやりとり inputのvalueに値(空の値)が反映される
50.
50 コンポーネント間のデータのやりとり inputに⼊⼒があったのを検知する(この時点ではinputのvalueには反映されない) blue-goheimochi
51.
51 コンポーネント間のデータのやりとり Atomsでイベントが発⾏され Moleculesがそれを変更された値と⼀緒に検知する blue-goheimochi
52.
52 コンポーネント間のデータのやりとり Moleculesでイベントが発⾏され Organismsがそれを変更された値と⼀緒に検知する blue-goheimochi
53.
53 コンポーネント間のデータのやりとり Organismsで変更された値を更新する user_id = blue-goheimochi
54.
54 コンポーネント間のデータのやりとり OrganismsからMoleculesにprops経由でデータ(更新された値)が渡る blue-goheimochi
55.
55 コンポーネント間のデータのやりとり MoleculesからAtomsにprops経由でデータ(更新された値)が渡る blue-goheimochi
56.
56 コンポーネント間のデータのやりとり inputのvalueに値(更新された値)が反映される blue-goheimochi
57.
なるほど わからん
58.
58 シンプルに props in /
events out だけをみる
59.
59 コンポーネント間のデータのやりとり Organisms Molecules Atoms props
in / events out 値が変更されたら イベントを発⾏する
60.
60 コンポーネント間のデータのやりとり Organisms Molecules Atoms props
in / events out ⼦が発⾏したイベントを 親が検知して値を受け取る
61.
61 コンポーネント間のデータのやりとり Organisms Molecules Atoms props
in / events out 検知した値とともに イベントを発⾏する
62.
62 コンポーネント間のデータのやりとり Organisms Molecules Atoms props
in / events out ⼦が発⾏したイベントを 親が検知して値を受け取る
63.
63 コンポーネント間のデータのやりとり Organisms Molecules Atoms props
in / events out 値を設定する
64.
64 コンポーネント間のデータのやりとり Organisms Molecules Atoms 値が設定された props
in / events out
65.
65 コンポーネント間のデータのやりとり Organisms Molecules Atoms propsでデータが渡るprops
in / events out
66.
66 コンポーネント間のデータのやりとり Organisms Molecules Atoms propsでデータが渡る props
in / event out
67.
67 コンポーネント間のデータのやりとり Organisms Molecules Atoms props
in / events out 値が更新される
68.
どうですか︖
69.
正直⾔葉での説明 わかりづらい
70.
実際に ⼿を動かしたほうが 理解が進む︕
71.
71 まとめ
72.
72 まとめ • Vue.jsでFormをAtomic Designしてみた •
コンポーネントが複数階層の親⼦関係になる • データはなるべく上位の親で管理 • Organismsより上でデータは持つ • Molecules、Atomsに状態は持たない • うまいこと親⼦間でデータをやりとりする • props in / events out が⼤事 • 実際に⼿を動かして感覚をつかみましょう︕
Download now