私が直面している課題は、プレーンな古いJavascriptで単一ページのアプリケーションを構築することです。ライブラリやフレームワークは許可されていません。 ReactとAngularで動的なDOM要素を作成するのはかなり簡単ですが、私が思いついたバニラのJSソリューションはぎこちないようです。動的にレンダリングされたDOM要素を構築するために特に簡潔で効率的な方法があるのだろうかと思います。プレーンなJSでDOM要素を動的にレンダリングするにはどうすればよいですか?
以下の関数は、GETリクエストから受け取った配列を受け取り、各アイテムのdivをレンダリングして値を渡します(結果をReactとrenderの子要素にマップするのと同じように)。
function loadResults(array) {
array.forEach(videoObject => {
let videoData = videoObject.snippet;
let video = {
title : videoData.title,
img : videoData.thumbnails.default.url,
description : videoData.description
};
let div = document.createElement("DIV");
let img = document.createElement("IMG");
img.src = video.img;
let h4 = document.createElement("h4");
let title = document.createTextNode(video.title);
h4.appendChild(title);
let p = document.createElement("p");
let desc = document.createTextNode(video.description);
p.appendChild(desc);
div.appendChild(img);
div.appendChild(h4);
div.appendChild(p);
document.getElementById('results')
.appendChild(div);
});
}
これは不必要に不器用なように感じますが、私はこれを行う簡単な方法がまだ見つかりませんでした。
ありがとうございます!
を動的な要素を構築する関数...そのようにすれば、その要素を構築するために関連する情報を渡す関数への関数といくつかの呼び出ししかないでしょう...それで、ソースコードが厄介なように見えるのです... – NewToJS
パフォーマンスヒットに気にしなければ 'innerHTML'を実行してください。 – Dai
あなたが持っているものは、ReactやAngularではなく、普通のJSで要素を作成するための適切な方法です。 – adeneo