Тема: Як правильно кодити на JS. Виведіть джуна на шлях істенний.
В мене трохи може дивне питання. Я займаюсь кодингом вже рік та 4 місяці фулл-стак. Але в моєму фул стак переважно бек-енд на С#. C# Я вважаю най зручнішою мовою і після нього починати кодити на JS якійсь дикий треш хоча мови схожі в багатьох момента. Ще треба зауважити, що є чітке розуміння для чого С# а для чого JavaScript. Так от де з'являється проблема в JS, так це коли реально не розумієшь як його використовувати, а головне використовувати правильно та по назначенню. В ітозі мій код на фронті це лютий костиль в перемішку з JQuery. Хочу просто навести приклад свого коду де я роблю для себе блог. JavaScript я наче розумію але просто не можу зрозуміти як правильно його використовувати. Тільки не ржіть з мене. Реально буває така проблема думаю не тільки в мене) Задача на сторінці блога: Отримати з апі json-об'єкт та вивести все в окремий пост з зображеннями та ще і карусель нестандартну зробити і мені по факту це вдалося. Але код базується майже весь на функції .append де я тупо руками прописую пів сторінки що треба вставити. Я так розумію що це не правильно і використовувати JS потрібно більш адекватно. Ось частина коду.
Як я починаю розуміти, більш правильно буде коли я буду створювати по частинах кожен блок та чистим кодом присвоювати туди класи та інші теги а не прописувати це в ручну в лапках через функцію append? Шось накшталт такого?
var d=document.createElement('div');
d.classList.add("myclass, col-md-4")
і погнав так весь блог? Так як на мене зручніше потім з данними сторінки манепулювати?
Мій код
<script>
function getData(data) {
var allimg = [];
var url = "/api/Blog"
$.getJSON(url, function (data) {
var obj = $.parseJSON(data);
for (var i = 0; i < obj.length; i++) {
$("#idfirst").after('<div id="post' + i + '"class="post">' +
'<div id = "posthead' + i + '" class= "posthead"></div>' +
'<div id="postbody' + i + '" class="postbody"></div>' +
'<div style="width:100%; height:220px;" id="carouselExampleIndicators' + i + '"class="carousel slide"
data-ride="carousel' + i + '">' +
'<ol id="indicators' + i + '" class="carousel-indicators">' +
'</ol >' +
'<div style="margin-top:30px;" id="carouselImg' + i + '"class="carousel-inner">' +
'</div>' +
'</div>' +
'</div></div>');
$("#posthead" + i).append($('<p>').text(obj[i].Headline));
$("#postbody" + i).append($('<p>').text(obj[i].BodyText));
if (obj[i].Img64.length > 0) {
var count = 0;
var countIndic = 0;
if (obj[i].Img64.length > 3) {
$("#carouselImg" + i).after('<a class="carousel-control-prev" href="#carouselExampleIndicators' + i
+ '" role="button" data-slide="prev">' +
'<span style="background-color:darkgrey" class="carousel-control-prev-icon" aria-hidden="true"</span>'+
'<span class="sr-only">Previous</span>' +
'</a>' +
'<a class="carousel-control-next" href="#carouselExampleIndicators' + i + '" role="button" data-slide="next">' +
'<span style="background-color:darkgrey" class="carousel-control-next-icon" aria-hidden="true"></span>' +
'<span style="background-color:darkgrey" class="sr-only">Next</span>' +
'</a>');
var x = obj[i].Img64.length / 3 >> 0;
var countMain = 0;
var countAll = 1;
for (var u = 0; u < 3; u++) {
if (countAll != 1) {
countAll = countAll + 1;
}
if (countMain > 1) {
$("#carouselImg" + i).append('<div name="' + i +'" id="carouselRow' + i + u + '"
class="carousel-item"></div>')
$("#carouselRow" + i + u).append('<img id="' + i +'" name="imgPost" class="w-100
myImgClass col-md-4" src=' + obj[i].Img64[countMain] + ' alt="">');
countMain = countMain + 3;
}
else {
$("#carouselImg" + i).append('<div name="'+i+'" id="carouselRow' + i + u + '"
class="carousel-item active"></div>')
$("#carouselRow" + i + u).append('<img id="' + i +'" name="imgPost" class="w-100
myImgClass col-md-4" src=' + obj[i].Img64[countMain] + ' alt="">');
countMain = countMain + 3;
}
for (var t = 1; t < 3; t++) {
if (obj[i].Img64[countAll] != undefined) {
$("#carouselRow" + i + u).append('<img id="' + i +'" name="imgPost" class="w-100
myImgClass col-md-4" src=' + obj[i].Img64[countAll] + ' alt="">');
countAll = countAll + 1;
}
}
}
}
else {
var countX = 0;
for (var y = 0; y < obj[i].Img64.length; y++) {
if (countX == 0) {
$("#carouselImg" + i).append('<div name="' + i +'" id="carouselRow' + i + '" class="carousel-
item row col-md-12 active"></div>')
$("#carouselRow" + i).append('<img id="' + i +'" name="imgPost" class="w-100 myImgClass c
сol-md-4" src=' + obj[i].Img64[y] + ' alt="">');
countX = countX + 1;
}
else {
$("#carouselRow" + i).append('<img id="'+i+'" name="imgPost" class="w-100 myImgClass col-
md-4" src=' + obj[i].Img64[y] + ' alt="">');
}
}
}
}
allimg[allimg.length] = document.getElementById('carouselImg' + i).getElementsByTagName("img");
takeModal(allimg);
}
});
}
$(document).ready(function () {
getData();
})