export const ColorfulMessage = (props) => {
console.log('--------ColorfulMessage---------');
const contentStyleA = {
color: props.color,
fontSize: '18px',
};
return <p style={contentStyleA}>{props.children}</p>;
};
const ColorfulMessage = (props) => {
console.log('--------ColorfulMessage---------');
const contentStyleA = {
color: props.color,
fontSize: '18px',
};
return <p style={contentStyleA}>{props.children}</p>;
};
export default ColorfulMessage;
import ColorfulMessage from './components/ColorfulMessage';
import { useEffect, useState } from 'react';
export const App = () => {
console.log('--------App---------');
const [num, setNum] = useState(0);
const [isShowFace, setIsShowFace] = useState(false);
const onClickButton = () => {
setNum((prev) => prev + 1);
};
const contentStyleA = { color: 'blue', fontSize: '18px' };
const contentStyleB = { color: 'green', fontSize: '18px' };
const onClickToggle = () => {
setIsShowFace(!isShowFace);
};
useEffect(() => {
if (num > 0) {
if (num % 3 === 0) {
isShowFace || setIsShowFace(true);
} else {
isShowFace && setIsShowFace(false);
}
}
}, [num]);
return (
<>
<h1 style={contentStyleA}>こんにちは!</h1>
<ColorfulMessage color="blue">お元気ですか?</ColorfulMessage>
<ColorfulMessage color="green">元気です!</ColorfulMessage>
<button onClick={onClickButton}>カウントアップ</button>
<p>{num}</p>
<button onClick={onClickToggle}>on/off</button>
{isShowFace && <p>\(^o^)/</p>}
</>
);
};