koala-logo

進級制作で頑張ったこと

今回の進級制作について

進級制作では「Baw Baw Izakaya」というミャンマー料理店のWebサイトを制作しました。
今回の制作では、デザインだけでなくコーディングにも多く挑戦しました。

Reactのコンポーネントに挑戦したこと

今回初めて、Reactを使ってWebサイトのパーツをコンポーネントに分けて作りました。
同じデザインを何度も書かなくていいので、とても便利だと感じました。

const popularData = [
    { num: 1, title: "モヒンガー", price: "¥980", image: "./images/ramen02.png" },
    { num: 2, title: "シャンカウスエ", price: "¥980", image: "./images/shan-noodle.png" },
    { num: 3, title: "ビリヤニ", price: "¥1100", image: "./images/dan-pauk.png" },
    { num: 4, title: "チェーオーシーチェッ", price: "¥1100", image: "./images/ramen03.png" },
    { num: 5, title: "ココナッツミルクラーメン", price: "¥1100", image: "./images/coconnut-ramen.png" },
    { num: 6, title: "スパイシー豚リブスープ", price: "¥1200", image: "./images/soup03.png" },
];

const Popular = () => {
    return (
        <div className="popular__items">
            {popularData.map((item) => (
                <div className="popular__post post" key={item.num}>
                    <img
                        src={item.image}
                        alt={item.title}
                        className="post__image"
                    />

                    <div className="post__content">
                        <h3>{item.title}</h3>
                        <p className="post__price">{item.price}</p>
                    </div>
                </div>
            ))}
        </div>
    );
};

ReactDOM.createRoot(document.querySelector("#popular-root")).render(
    <Popular />
);

JavaScriptで動きをつけたこと

ボタンを押したらメニューが表示されるような動きも追加しました。

const hamburger = document.querySelector("#hamburger");
const gnav = document.querySelector("#gnav");
const links = document.querySelectorAll("#gnav a");

// Close menu when a link is clicked
for (let i = 0; i < links.length; i++) {
    links[i].addEventListener("click", function () {
        hamburger.classList.remove("active");
        gnav.classList.remove("active");
        document.body.classList.remove("no-scroll");
    });
}

// Toggle menu
hamburger.addEventListener("click", (e) => {
    e.stopPropagation();
    hamburger.classList.toggle("active");
    gnav.classList.toggle("active");
    document.body.classList.toggle("no-scroll");
});

// Close menu when clicking outside
document.addEventListener("click", (e) => {
    if (!hamburger.contains(e.target) && !gnav.contains(e.target)) {
        hamburger.classList.remove("active");
        gnav.classList.remove("active");
        document.body.classList.remove("no-scroll");
    }
});

難しかったこと

Reactの仕組みを理解するのが難しかったです。特に、propsの使い方やコンポーネントの分け方で悩みました。しかし、調べながら作ることで少しずつ理解できるようになりました。

学んだこと

今回の制作で、Webサイトは見た目だけでなく、コードの整理も大切だと学びました。
コンポーネントを使うことで、管理しやすくなることを知りました。

今後に活かしたいこと

これからの制作でもReactを使って、もっと効率よくWebサイトを作れるようになりたいです。
また、JavaScriptの理解も深めていきたいと思いました。
 

コメントする

コメント記入欄の上に表示するメッセージ

コメント記入欄の下に表示するメッセージ

-PROFILE-

profile-pic

Trident Computer College
Webデザイン学科

ウェブデザインを楽しく勉強中です!
このブログで作品を少しずつアップしていきます