こんな構成で上記それぞれの四角がコンポーネントであり、入力値の変更を受けて結果が自動的に変わるようなものを作った。 #見た目をどうするか 見た目は大事。 しかしながらデザインセンスがないのでいつも使ってるBootstrapを使った。 レスポンシブにもなるし。 スキンはbootstrap-material-designを利用した。 #コンポーネント間の通信をどうするか Riot.jsには標準で使い勝手のよいriot-observableがついているが、コンポーネント間の直接依存は避けたいため、fluxのようなものを自作しようしようかとしていたが、aggreさんのObseriotというライブラリがとてもいけていたので利用させてもらった。 今回の通信仕様 ルートコンポーネント Actions : 数値の変更Action Stores : 足し算結果Store 掛け算結果Store Dispatc
![Riot.jsによるゆるいコンポーネント分割 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/7443af59334c0c655a90d9d3cb3257da875f9fc8/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMzU5MTAlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODY4ODg_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmZtPXBuZzMyJnM9NjViNWZiY2I4MGVmMjU4YTgzMjNhMmMxYmMxZjM4MjU%2526blend-x%253D120%2526blend-y%253D467%2526blend-w%253D82%2526blend-h%253D82%2526blend-mode%253Dnormal%2526s%253D38d15895c7c0ee4168df1d79d39502e7%3Fixlib%3Drb-4.0.0%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9UmlvdC5qcyVFMyU4MSVBQiVFMyU4MiU4OCVFMyU4MiU4QiVFMyU4MiU4NiVFMyU4MiU4QiVFMyU4MSU4NCVFMyU4MiVCMyVFMyU4MyVCMyVFMyU4MyU5RCVFMyU4MyVCQyVFMyU4MyU4RCVFMyU4MyVCMyVFMyU4MyU4OCVFNSU4OCU4NiVFNSU4OSVCMiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1wYWQ9MCZzPWUzZWE5NTc5NzVhMTc0MDBjYmY5MmMwZWQwZTA5NzFi%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBiYWtlbmV6dW1pJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LXBhZD0wJnM9MDhkZDBhMTMwYWRhMzdjNTQyYTYxNzYxZWZkYTQyZjY%26blend-x%3D242%26blend-y%3D480%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26s%3Dc452553cbeec59bb88bf056897080255)