はじめに
本記事は、プログラミングの学習を始めて1ヶ月の初学者が、学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。
##React 入門
###Reactとは
Facebook社(現 Meta Platforms)が開発したUIパーツを構築するためのJavaScriptライブラリです。
###問い合わせフォームの作成
以下のように記述することで問い合わせフォームを作成することができます。
ContactForm.js
import React from 'react';
class ContactForm extends React.Component {
constructor(props) {
super(props);
this.state = {
isSubmitted: false,
email: '',
hasEmailError: false,
content: '',
hasContentError: false,
};
}
handleEmailChange(event) {
const inputValue = event.target.value;
const isEmpty = inputValue === '';
this.setState({
email: inputValue,
hasEmailError: isEmpty,
});
}
handleContentChange(event) {
const inputValue = event.target.value;
const isEmpty = inputValue === '';
this.setState({
content: inputValue,
hasContentError: isEmpty,
});
}
handleSubmit() {
this.setState({isSubmitted: true});
}
render() {
let emailErrorText;
if (this.state.hasEmailError) {
emailErrorText = (
<p className='contact-message-error'>
メールアドレスを入力してください
</p>
);
}
let contentErrorText;
if (this.state.hasContentError) {
contentErrorText = (
<p className='contact-message-error'>
お問い合わせ内容を入力してください
</p>
)
}
let contactForm;
if (this.state.isSubmitted) {
contactForm = (
<div className='contact-submit-message'>
送信完了
</div>
);
} else {
contactForm = (
<form onSubmit={() => {this.handleSubmit()}} >
<p>メールアドレス(必須)</p>
<input
value={this.state.email}
onChange={(event) => {this.handleEmailChange(event)}}
/>
{emailErrorText}
<p>お問い合わせ内容(必須)</p>
<textarea
value={this.state.content}
onChange={(event) => {this.handleContentChange(event)}}
/>
{contentErrorText}
<input
type='submit'
value='送信'
/>
</form>
);
}
return (
<div className='contact-form'>
{contactForm}
</div>
);
}
}
export default ContactForm;