functional component vs class component แตกต่างกันอย่างไร