aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
SAVED POSTS
aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
aedev.net
No Result
View All Result
Minh hoạ hooks kết nối logic với component React Native

Hooks trong React Native: cách dùng logic trong function component

admin by admin
22/07/2026
in Lập trình Mobile, React Native
0
585
SHARES
3.3k
VIEWS
Summarize with ChatGPTShare to Facebook

Khi học React Native hiện đại, bạn sẽ gặp hooks rất sớm. Hooks là các hàm đặc biệt giúp function component dùng được những khả năng của React như state, effect, context, memoization và nhiều logic khác.

Nói đơn giản: hooks giúp component không chỉ “hiển thị UI”, mà còn có thể ghi nhớ dữ liệu, phản ứng với thay đổi và tái sử dụng logic.

Hooks là gì?

Hooks là những hàm bắt đầu bằng chữ use, ví dụ useState, useEffect, useMemo, useCallback, useRef. Hai hook người mới nên học đầu tiên là useState và useEffect.

import { useState } from 'react';
import { Button, Text, View } from 'react-native';

function LikeButton() {
  const [liked, setLiked] = useState(false);

  return (
    <View>
      <Text>{liked ? 'Đã thích' : 'Chưa thích'}</Text>
      <Button title="Đổi trạng thái" onPress={() => setLiked(!liked)} />
    </View>
  );
}

Trong ví dụ này, useState cho component một state tên là liked. Khi người dùng bấm nút, state đổi và UI render lại.

Vì sao hooks quan trọng?

Trước đây React dùng class component cho nhiều tính năng như state và lifecycle. Với hooks, bạn có thể viết function component gọn hơn, dễ tách logic hơn và phù hợp với cách React hiện đại đang phát triển.

Trong React Native, hooks xuất hiện ở khắp nơi: quản lý state form, gọi API, đọc kích thước màn hình, theo dõi app state, xử lý navigation focus, đọc theme và nhiều tác vụ khác.

Quy tắc dùng hooks

Có hai quy tắc quan trọng. Thứ nhất, chỉ gọi hooks ở cấp cao nhất của component hoặc custom hook. Đừng gọi hook bên trong if, for, callback lồng sâu hoặc function bình thường.

Thứ hai, chỉ gọi hooks trong React function component hoặc custom hook. Custom hook cũng là function, nhưng tên phải bắt đầu bằng use.

// Nên
function ProfileScreen() {
  const [name, setName] = useState('Nam');
  return <Text>{name}</Text>;
}

// Không nên
function ProfileScreen({ enabled }) {
  if (enabled) {
    const [name, setName] = useState('Nam');
  }
}

Custom hook là gì?

Khi một đoạn logic được dùng lại ở nhiều component, bạn có thể tách nó thành custom hook. Ví dụ logic bật/tắt boolean:

import { useState } from 'react';

function useToggle(initialValue = false) {
  const [value, setValue] = useState(initialValue);

  const toggle = () => setValue(current => !current);

  return { value, toggle };
}

Sau đó component có thể dùng useToggle mà không cần lặp lại logic state.

Người mới nên học hook nào trước?

Hãy bắt đầu với useState để hiểu UI thay đổi theo dữ liệu. Tiếp theo học useEffect để hiểu các tác vụ bên ngoài render như gọi API hoặc lắng nghe sự kiện. Sau đó mới học useRef, useMemo, useCallback khi thật sự gặp nhu cầu.

Đừng học hook theo kiểu thuộc lòng danh sách. Hãy học theo vấn đề: cần ghi nhớ dữ liệu thì dùng useState, cần chạy tác vụ sau render thì tìm hiểu useEffect, cần giữ một giá trị không làm render lại thì xem useRef.

Lỗi thường gặp

Lỗi đầu tiên là gọi hook có điều kiện. Lỗi thứ hai là dùng useMemo và useCallback quá sớm dù chưa có vấn đề performance. Lỗi thứ ba là nhồi quá nhiều logic vào một component thay vì tách thành custom hook hoặc component nhỏ hơn.

Kết luận

Hooks là cách React hiện đại đưa logic vào function component. Với React Native, chỉ cần hiểu chắc useState và useEffect là bạn đã có thể xây được nhiều màn hình thực tế. Các hook nâng cao nên học sau, khi bạn đã gặp vấn đề thật.

Nguồn tham khảo: React Hooks Reference, Reusing Logic with Custom Hooks.

SummarizeShare234
admin

admin

Related Stories

Minh hoạ React Native gọi API và hiển thị loading error empty success state

Gọi API trong React Native: loading, error và empty state

by admin
22/07/2026
0

Học cách gọi API bằng fetch trong React Native và hiển thị đầy đủ loading, error, empty và success state để UI dễ dùng hơn.

Minh hoạ điều hướng giữa các màn hình trong React Native bằng stack và tab

Navigation giữa các màn hình trong React Native cho người mới

by admin
22/07/2026
0

Hiểu screen, stack, tab, params và cách dùng React Navigation để chuyển giữa các màn hình trong app React Native.

Minh hoạ form TextInput validation và keyboard trong React Native

Form cơ bản với TextInput trong React Native

by admin
22/07/2026
0

Học cách tạo form cơ bản trong React Native bằng TextInput, state, validation đơn giản, submit button và xử lý keyboard-friendly layout.

Minh hoạ FlatList hiển thị danh sách bài viết trong React Native

Xây màn hình danh sách với FlatList trong React Native

by admin
22/07/2026
0

FlatList là component quan trọng để hiển thị danh sách dài trong React Native. Bài này hướng dẫn render item, keyExtractor, empty và loading state.

Next Post
Minh hoạ useEffect gọi API và đồng bộ dữ liệu trong React Native

useEffect trong React Native: hiểu đúng để gọi API và đồng bộ dữ liệu

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

AE Dev

AE Dev mang đến các bài viết về lập trình, mobile app, backend, frontend, WordPress và công nghệ, phù hợp cho developer muốn học hỏi và cập nhật kiến thức thực tế.

Recent Posts

  • Gọi API trong React Native: loading, error và empty state
  • Navigation giữa các màn hình trong React Native cho người mới
  • Form cơ bản với TextInput trong React Native

Categories

  • AI
  • Backend
  • Đánh giá
  • DevOps
  • Flutter
  • Hướng dẫn
  • Lập trình Mobile
  • React Native

Weekly Newsletter

  • Buy JNews
  • Support Forum
  • Pre-sale Question
  • Contact Us

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Trang chủ
  • AI
  • Mobile
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
  • Flutter

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.