質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1750閲覧

javascriptでmvcモデルの考え方を取り入れたい

blendegg

総合スコア81

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/09/11 12:59

ストップウォッチを作っていたのですが、コードが猥雑すぎて全体の流れが分からなくなってしまいました。そこでMVCモデルというものが良いと聞きました。

質問なんですが、以下のサンプルコードの場合、model,view,controllerの分け方は正しいでしょうか?
また、どのようにしてセクションを分けるのでしょうか?別ファイルにするなどのやり方はあると思います。以下の例では、単にmodel,view,controllerのコメントを入れているだけです。

<div id="display"> </div> <button id="button">ボタン</button> <script> //model let display = document.getElementById("display"); let button = document.getElementById("button"); let num = 0; function main_logic() { num += 2; console.log(num); set_num(); } //controller button.addEventListener("click" , function() { main_logic(); }); //view function set_num() { display.textContent = num; } </script>

javascriptにおけるmvcモデルの説明が見つからないので、質問させていただきます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

javascriptにおけるmvcモデルの説明が見つからないので、質問させていただきます。

見つからない理由はいわゆるバッドプラクティスだと判断されているからだと思われます
mvcの書き方参考にするならangular1.xのマニュアルを探して書き方を調べる、出来ればangular1.xを使ってみる事です
※angular2.xはmvcではないのでダメです

コードが猥雑すぎて全体の流れが分からなくなってしまいました。そこでMVCモデルというものが良いと聞きました。

例に書いてあるコードだと分かりませんが汚い理由はそこじゃないと思います
まずは同じ処理(ストップウォッチ)のコードを現在のソースを一切見ずにhtmlから1から書き直す事を始めてみてはどうでしょうか?
mvcを意識しているという事から恐らく質問者自身自覚はあると思いますが、各コードの役割が上手く分離できていないからだと思われます

投稿2021/09/11 13:54

hentaiman

総合スコア6426

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

そもそもJavaScript自体フロントなのでいってしまえば全部Viewと言えます。
一般的なMVCを成立させるにはサーバーサイドの(オブジェクト指向)言語、およびデータベースと絡めさせる必要があります。

※JavaScriptでもサーバーサイドのNode.jsとか絡めればMVC構造を持ったフレームワークはあると思います
IndexedDBなどをDBと見立て、それっぽく仕立てることは出来そうですが、やはりMVCという感じから外れそうな気がしないでもないです。

投稿2021/09/11 13:04

編集2021/09/11 13:13
m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問