Skip to content

Instantly share code, notes, and snippets.

@hyuki

hyuki/chat.md Secret

Created April 24, 2023 20:43
Show Gist options
  • Select an option

  • Save hyuki/1f26da6a78ab8925396259de40c471fd to your computer and use it in GitHub Desktop.

Select an option

Save hyuki/1f26da6a78ab8925396259de40c471fd to your computer and use it in GitHub Desktop.
#ChatGPT と結城浩の対話: ReactとVueのHello, Worldサイトの例を作ってください。

Model: GPT-4

Date: 2023-04-25

これまでフロントエンドの経験がない人はNext, React, Vueのどれを使うのがいいですか。一人で作るWebサイトの場合です。

フロントエンド開発の経験がない人が一人でWebサイトを作る場合、Next.js、React、Vueのどれを使うかは、それぞれのライブラリ・フレームワークの特性と、あなたの学習目標やプロジェクトのニーズによって異なります。

  • React: Facebookが開発したJavaScriptライブラリで、コンポーネントベースのアプローチを採用しており、再利用可能なUIコンポーネントを作成することができます。Reactは人気があり、大規模なコミュニティがあります。これにより、学習リソースやサードパーティ製のライブラリが豊富にあります。

  • Vue.js: Vueは、Reactと同様にコンポーネントベースのフレームワークですが、より直感的で学習しやすい構文を持っています。Vueの学習曲線は比較的緩やかで、ドキュメントも充実しているため、初心者にもおすすめです。

  • Next.js: Next.jsは、Reactをベースにしたフレームワークで、サーバーサイドレンダリング (SSR) や静的サイト生成 (SSG) などの機能を簡単に実現できます。Next.jsはReactの上に構築されているため、Reactの基本的な知識が必要です。

一人でWebサイトを作る場合、最初にVue.jsを検討してみることをお勧めします。Vueは学習しやすく、初心者にも優しいフレームワークであるため、フロントエンド開発の経験がない方には特に適しています。ただし、将来的にReactを学びたい場合や、サーバーサイドレンダリングや静的サイト生成に興味がある場合は、ReactやNext.jsを選択することも検討に値します。最終的には、あなたの学習目標やプロジェクトの要件に基づいて選択してください。

React, Vueで「Hello World」的なごく簡単なWebサイトの例をそれぞれ挙げてください。ユーザが名前を入れると「Hello, XXXさん」と答えるだけのWebサイトです。

それぞれのフレームワークで簡単な「Hello, XXXさん」のWebサイトを作成する例を以下に示します。

Reactの例:

まず、create-react-appを使って新しいReactプロジェクトを作成します。

npx create-react-app hello-world-react
cd hello-world-react
npm start

次に、src/App.jsを編集して以下のように変更します。

import React, { useState } from 'react';
import './App.css';

function App() {
  const [name, setName] = useState('');

  return (
    <div className="App">
      <input
        type="text"
        placeholder="名前を入力してください"
        onChange={(event) => setName(event.target.value)}
      />
      <p>Hello, {name ? name + "さん" : "名無しさん"}!</p>
    </div>
  );
}

export default App;

Vue.jsの例:

まず、vue createを使って新しいVueプロジェクトを作成します。

npm install -g @vue/cli
vue create hello-world-vue
cd hello-world-vue
npm run serve

次に、src/components/HelloWorld.vueを編集して以下のように変更します。

<template>
  <div>
    <input
      type="text"
      placeholder="名前を入力してください"
      v-model="name"
    />
    <p>Hello, {{ name ? name + "さん" : "名無しさん" }}!</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: ''
    };
  }
};
</script>

そして、src/App.vueを編集して、HelloWorldコンポーネントをインポートします。

<template>
  <div id="app">
    <HelloWorld />
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue';

export default {
  components: {
    HelloWorld
  }
};
</script>

<style>
#app {
  text-align: center;
  margin-top: 60px;
}
</style>

これで、ReactとVue.jsのそれぞれで「Hello, XXXさん」と表示する簡単なWebサイトが完成しました。ユーザーが名前を入力すると、メッセージが更新されます。

@hyuki
Copy link
Copy Markdown
Author

hyuki commented Apr 24, 2023

実行結果

React

image

Vue

image

@hyuki
Copy link
Copy Markdown
Author

hyuki commented Apr 24, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment