React Flashcards

https://www.simplilearn.com/tutorials/reactjs-tutorial/reactjs-interview-questions

1
Q
  1. React の特徴は何ですか?
A

・宣言的なView (JSX)
・コンポーネントベースのUI構築
・効率的なレンダリング (仮想DOM)

https://genee.jp/contents/react/#:~:text=Reactは、Webアプリの,開発を実現します。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

JSXとは何ですか?

A

JSX(JavaScript XML)は、JavaScriptの構文拡張で、JavaScriptファイル内にHTMLのようなコードを記述できるようにするものです。JSXの構文はHTMLに似ており、開閉タグ、属性、入れ子要素などがあります。

https://kinsta.com/jp/knowledgebase/what-is-jsx/#jsx

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Web ブラウザは JSX を直接読み取ることができますか?

A

Web ブラウザは JSX を直接読み取ることができません。
これは、これらは通常の JS オブジェクトのみを読み取るように構築されており、JSX は通常の JavaScript オブジェクトではないためです。
Web ブラウザが JSX ファイルを読み取るには、ファイルを通常の JavaScript オブジェクトに変換する必要があります。このために、Babel を使用します

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

仮想 DOM とは何ですか?

A

情報を受け取ってもすぐにはブラウザの描画を行わず、まずはバーチャルなDOM(プログラム的に作成された仮のDOM)を構築することを指します。そして、構築された仮想DOMの内容を元にHTMLを作成し、実際のDOM(リアルDOM)に同期されます。このプロセスは差分検出処理 (reconciliation)と呼ばれます。

この仮想DOMはリアルDOMに比べ、ページ表示の高速化を実現します。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Angular などの他のフレームワークではなく React を使用する理由は何ですか?

A

Angular や Vueと比較すると、エコシステム全体の成熟度やコンポーネントの可用性、コミュニティの面ではReactが勝っているかもしれません。また、React はGitやUXPinのような他のプラットフォームやツールとの統合が可能です。

https://www.uxpin.com/studio/jp/blog-jp/angular-vs-react-vs-vue-どのフレームワークを使うべきか?/

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

ES6 規格と ES5 規格の違いは何ですか?

A
  • Components and Function
    // ES5
    var MyComponent = React.createClass({
    render: function(){
    return(<h3>Hello World!</h3>);
    }
    });
    // ES6
    class MyComponent extends React.Component{
    render(){
    return(<h3>Hello World!</h3>);
    }
    }
  • require vs import
    // ES5
    var React = require(‘react’);
    // ES6
    import React from ‘react’;

ES5とES6の違いをまとめてみた(メモ)
https://qiita.com/rifutan/items/a55f132d4dae7e2f1941

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

React アプリはどのように作成しますか?

A

npx create-react-app my-app
cd my-app
npm start

新しい React アプリを作る
https://ja.legacy.reactjs.org/docs/create-a-new-react-app.html

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

React のイベントとは何ですか?

A

キーを押す、マウスのクリックなど、ユーザーまたはシステムがトリガーする可能性のあるアクションです。

React イベントの名前は、HTML の小文字ではなくキャメルケースを使用して付けられます。
JSX では、HTML の文字列ではなく関数をイベント ハンドラーとして渡します。
<ボタンを押す={lightItUp} />

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

React でイベントを作成するにはどうすればよいですか?

A

class Simple extend ReactComponent {
work(){
alert(“Good Work!”);
}

render(){
	return(
		<button onClick={this.work}>Do some work!</button>
	);
} }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

React の合成イベント(SyntheticEvent)とは何ですか?

A

Synthetic Eventを使えば、各ブラウザのネイティブイベントを全てラップしており、何も意識しなくてもクロスブラウザ対応ができる。

ReactのSyntheticEventとは何なのか
https://udomomo.hatenablog.com/entry/2017/10/14/125704

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

React でリストがどのように機能するかを説明しなさい

A
  • 順序付けられた形式でデータをリスト表示します
  • リストの走査は、map() 関数を使用して行われます。

const names = [‘Kohli’,’’,’’,’’,’’]

const listOfNames = () => {
const listItems = names.map((name) =>
<li key = {name}>
{name}
</li>
);
return (
<ul>{listItems}</ul>
);
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

リストでキーを使用する必要があるのはなぜですか?

A
  • キーは一意の識別子であり、どのアイテムがリストから変更、更新、または削除されたかを識別するために使用されます。
  • 毎回すべてのコンポーネントを再レンダリングするのではなく、どのコンポーネントを再レンダリングする必要があるかを判断するのにも役立ちます。したがって、更新されたコンポーネントのみが再レンダリングされるため、パフォーマンスが向上します。
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

React のフォームとは何ですか?

A

何らかのデータ更新等を扱うもので「OK」ボタンなどを押したり、というイベント処理が基本になります。

https://react.keicode.com/basics/react-form-basics.php

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

React でフォームを作成するにはどうすればよいですか?

A

class NameForm extends React.Component {
constructor(props) {
super(props);
this.state = {value: ‘’};

this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);   }

handleChange(event) {
this.setState({value: event.target.value});
}

handleSubmit(event) {
alert(‘A name was submitted: ‘ + this.state.value);
event.preventDefault();
}

render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Name:
<input type=”text” value={this.state.value} onChange={this.handleChange} />
</label>
<input></input>
</form>
);
}
}

https://ja.legacy.reactjs.org/docs/forms.html

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

React でコメントを書くにはどうすればよいですか?

A
  • 一行コメント
  • 複数行のコメント

class App extends Component {
render() {
// single line comment
/*
multi
line
comment
*/
return <h1>Hi! Try edit me</h1>;
}
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

アロー関数とは何ですか? React でどのように使用されますか?

A

function Hoge1() {
console.log(‘Hoge1’)
}

const Hoge2 = () => console.log(‘Hoge2’)

https://zenn.dev/rgbkids/books/0b75c912d8ac70/viewer/25f0ac

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

React は React Native とどう違うのですか?

A

React.jsとは、Web向けのフロントエンドライブラリになります。 一方、React Nativeはモバイルアプリの開発に特化したフレームワークです。
つまり、両者は「フレームワーク」と「ライブラリ」という点で明確な違いがあります。

https://engineer-style.jp/articles/9632#:~:text=React.jsとは、Web,の集合になります。

18
Q

React は Angular とどう違うのですか?

A
  • Angularは、完全なアプリケーションフレームワークであり、依存性注入やルーティングなどの機能が組み込まれています。
  • Reactはライブラリであり、必要に応じて他のライブラリと組み合わせて使用することが前提となっています。
19
Q

React のコンポーネントは何ですか?

A

Reactで画面に表示される部品のことで、表示に必要なデータや処理などを1つのオブジェクトにまとめたものです。 画面に表示するための部品を作ることによって、いつでも簡単に組み込むことで部品を再利用することができます。

https://zenn.dev/web_tips/articles/c3851133f52d16

20
Q

React での render() の用途は何ですか?

A
  • コンポーネントに表示される HTML を返します。
  • 複数の要素をレンダリングする必要がある場合は、すべての要素が <div>、<form> などの 1 つの親タグ内にある必要があります。

import React from ‘react’

class App extends React.Component {
render(){
<h1>Hello World!</h1>
}

}
export default App

21
Q

React のステート(state)とは何ですか?

A

コンポーネントの状態はステート(state)と呼ばれます。
ステートはコンポーネントが自己管理するプロパティであり、コンポーネント内で変更することができます。 Reactでは、ステートを変更すると、コンポーネントの再レンダリング(再描画)が行われます。

22
Q

React でステート(state)を実装するにはどうすればよいですか?

A

https://ja.legacy.reactjs.org/docs/state-and-lifecycle.html

this.stateのプロパティにアクセスする。

class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {date: new Date()};
}

render() {
return (
<div>
<h2>It is {this.state.date.toLocaleTimeString()}.</h2>
</div>
);
}
}

23
Q

コンポーネントのステート(state)はどのように更新しますか?

A

組み込みの「setState()」メソッドを使用して、コンポーネントの状態を更新できます。

<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Click me
</button>

https://ja.legacy.reactjs.org/docs/hooks-state.html

24
Q

React の props とは何ですか?

A

props とは自分で調整できるコントローラの「ツマミ」のようなものです。 関数における引数と同じ役割を果たしています。 むしろ、props があなたのコンポーネントの唯一の引数です! React コンポーネントは props というオブジェクトを唯一の引数として受け取っているのです。

https://ja.react.dev/learn/passing-props-to-a-component

25
Q

コンポーネント間で props を渡すにはどうすればよいですか?

A

export default function Profile() {
return (
<Avatar
person={{ name: ‘Lin Lanying’, imageId: ‘1bX5QH6’ }}
size={100}
/>
);
}

https://ja.react.dev/learn/passing-props-to-a-component

26
Q

state と props の違いは何ですか?

A

State (状態)
mutable data (可変のデータ)
maintained by component (コンポーネントによって保持)
can change it (変更可)
should be considered private (プライベートであるべき)

Props (プロパティ)
immutable data (不変のデータ)
passed in from parent (親から渡される)
can’t change it (変更不可)
can be defaulted & validated (デフォルト値の設定と検証が可能)

https://qiita.com/kyrieleison/items/78b3295ff3f37969ab50

27
Q

React の高次(higher-order)コンポーネント(HOC)とは何ですか?

A

コンポーネントのロジックを再利用するための React における応用テクニック

https://ja.legacy.reactjs.org/docs/higher-order-components.html

28
Q

2 つ以上のコンポーネントを 1 つに埋め込むにはどうすればよいですか?

A

<コンポーネント名></コンポーネント名>

で埋め込む

class App extends ReactComponent {
render(){
return(
<div>
<h1>Hello<h1>
<Simple></Simple>
</div>
)
}
}

class Simple extends React.Component{
render(){
return (
<h1>Simplilearn<h1>
)
}
}

ReactDOM.render(
<App></App>.document.getElementById(‘index’)
):

29
Q

クラスコンポーネントと関数コンポーネントの違いは何ですか?

A

クラス・コンポーネント
- State: 状態を保持または管理できる
- シンプルさ: ステートレスコンポーネントと比較して複雑
- ライフサイクルメソッド: すべてのライフサイクルメソッドで動作可能
- 再利用: 可能

関数コンポーネント
- State: 状態を保持または管理できない
- シンプルさ: シンプルでわかりやすい
- ライフサイクルメソッド: どのライフサイクルメソッドでも機能しません
- 再利用: 不可

30
Q

コンポーネントのライフサイクルメソッドを説明します。

A

getInitialState():これはコンポーネントの作成前に実行されます。

ComponentDidMount():コンポーネントがレンダリングされて DOM に配置されるときに実行されます。

shouldComponentUpdate():コンポーネントが DOM への変更を決定し、特定の条件に基づいて「true」または「false」値を返すときに呼び出されます。

ComponentDidUpdate():レンダリングが行われた直後に呼び出されます。

ComponentWillUnmount():コンポーネントが破棄され、完全にアンマウントされる直前に呼び出されます。

https://qiita.com/102Design/items/f829911cd76734cbc882

31
Q

Reduxとは何ですか?

A

Reduxは、ReactJSが扱うUIのstate(状態)を管理をするためのフレームワークです。Reactではstateの管理するデータフローにFluxを提案していますが、ReduxはFluxの概念を拡張してより扱いやすく設計されています。

32
Q

Redux のコンポーネントは何ですか?

A

Store: アプリケーションの状態を保持します。

Action: ストアのソース情報。

Reducer: ストアに送信されたアクションに応じてアプリケーションの状態がどのように変化するかを指定します。

33
Q

Fluxとは何ですか?

A

Flux とはユーザインタフェースを構築するためのアプリケーションアーキテクチャです

34
Q

Redux は Flux とどう違うのですか?

A

ReduxにDispatcherは無い
Fluxはmiddlewareという仕組みを持たない。
Fluxは複数のstoreを持つ。

https://qiita.com/Kontam/items/e4de4569ade71a313246

35
Q

Reactルーターとは何ですか?

A

React Routerは、Reactのコンポーネントベースでルーティングを管理できるライブラリです。 React Routerを使うことで、ユーザーの操作に応じて表示内容を変更したり、URLにパラメータやクエリを含めて表示内容を変更したりすることができます。

https://musclecoding.com/react-router/#:~:text=React%20Routerは、Reactの,することができます。

36
Q

React Router が必要なのはなぜですか?

A

ルーティングをすることによって、ブラウザの戻るボタンが使えるようになったり、特定のURLを打ち込むことで特定のページに直接アクセスできるようになるというメリットがあります

https://qiita.com/maiyama18/items/b4ca1773580317e7112e#:~:text=なぜ%20react-router%20を使う必要があるのか,-React%20でふつう&text=ルーティングをすることによって,なるというメリットがあります。

37
Q

React ルーティングは従来のルーティングとどう違うのですか?

A

[ビュー]
- Reactルーティング: 単一の HTML ページ
- 従来のルーティング: 各ビューは新しい HTML ファイルです

[ナビゲート]
- Reactルーティング: ユーザーが同じファイル内の複数のビューをナビゲートする
- 従来のルーティング: ユーザーはビューごとに複数のファイルをナビゲートします

[ページ更新]
- Reactルーティング: 単一のファイルであるため、ページは更新されません
- 従来のルーティング: ユーザーが移動するたびにページが更新されます

[パフォーマンス]
- Reactルーティング: パフォーマンスを向上
- 従来のルーティング: パフォーマンスが遅い

38
Q

React ルーティングはどのように実装しますか?

A

アプリケーションにApp、About、Contact というコンポーネントがあることを考慮します。

const routing = (

<Router>
<div>
<h1>React Router Example</h1>
<Routepath="/"component={App}><Routepath="/"component={About}>
<Routepath="/"component={Contact}>
</div>
</Router>

)

39
Q

React コンポーネントはどのようにスタイル設定しますか?

A
  • インラインスタイリング
    class Simple extends React.Component{
    render(){
    <div>
    <h1 style = {{color:"blue"}}>Hello Simple!</h1>
    </div>}
    }
  • JavaScript オブジェクト
    class Simple extends
    React.Component {
    render(){
    const simpleStyle = {
    color: “white”,
    backgroundColor:”Green”,
    margin:”8px”,
    fontFamily:”OpenSans”
    };
    return(
    <div>
    <h1 style={simpleStyle}>Hello Simple </h1>
    );
    }
    }
  • CSS スタイルシート

import “//App.css”
class Simple extends React.Component{
render(){
return(

<div>
<h1>Hello Simple!</h1>
</div>

)}
}

40
Q

React での CSS モジュールの使用について説明してください。

A
  • CSS モジュール ファイルは.module.css拡張子で作成されます
  • モジュール ファイル内の CSS は、それをインポートしたコンポーネントでのみ使用できるため、コンポーネントのスタイルを設定する際に名前の競合は発生しません。
    Buttonchange: () => dispatch({msg: “Message”})