THẢO LUẬN

thg 2 26, 2019 6:52 SA

Đọc mắc cười thiệt 😄

0
thg 2 26, 2019 6:48 SA

Thank tác giả. Thấy Facebook với Chatwork dùng cái này từ lâu mà giờ mới biết là Chrome Custom Tab.

+1
thg 2 26, 2019 5:20 SA

Bài viết đơn giản quá. Cần nhất là giải thích cụ thể dùng thao tác gì thì ứng dụng vào tác vụ nền, thao tác gì thì trở lại,... VD ấn nút HOME, đang dùng app có đt gọi đến...? Ngoài ra, cái life cycle này trở thành 1 mớ bòng bong khi nó kết hợp cùng life cycle của Fragment. Nếu có thể bạn hãy làm 1 bài thật chi tiết về cái này.

+1

kiến thức ko mới nhưung rất trực quan ❤️

+1
thg 2 26, 2019 4:57 SA

Góp ý chút về bài viết này:

  1. Phần ví dụ chưa rõ ràng
Ta có table Employee(id,name,dept)

Và có 2 bài toán như sau:
Bài tập 1:
* 30 nhân viên trên 1 page
* có 50 phòng ban, mỗi nhân viên thuộc 1 phòng ban

Bài tập 2:
* 30 nhân viên trên 1 page
* 5000 phòng ban, mỗi nhân viên thuộc 1 phòng ban

Và ta có câu query như sau:
Select * from Employee Where dept="IT"

Đọc xong không hiểu yêu cầu của bài toán là gì? Insert vào Employee 30 nhân viên hay query thông tin nhân viên hay là gì?

// Câu SQL 1 - dùng sub query, bình thường sẽ viết như sau: 
Select *
    from A
    where col_a1 not in (Select col_a1 from B)


// Câu SQL 2: Sử dụng join
Select A.*
    from A
    left join B on B.col_a1=A.col_a1
    where B.col_a1 is not null 

Có vẻ như câu SQL 2 đang không đúng yêu cầu. where B.col_a1 is not null -> where B.col_a1 is null mới phải.

  1. Bài viết cần đầu tư thêm thời gian để có cấu trúc tốt hơn và phân tích kỹ hơn. VD như đặt vấn đề là cái gì nhanh hơn cái gì thì nên phân tích cả 2 chiều và tại sao lại như vậy, nếu có thử nghiệm rồi chụp evidence để mang tính thuyết phục cao hơn thì càng tốt. Chứ như hiện tại thì cảm giác hơi cưỡi ngựa xem hoa rồi kết luận luôn.
+2
thg 2 26, 2019 4:45 SA

😗

0
thg 2 26, 2019 4:44 SA

+1
thg 2 26, 2019 4:06 SA

bài viết hứu ích, cảm ơn tác giả

0

@luffybkchypro cái Key Authorization của bạn đang bị sai rồi kià , Bearer đằng sau làm gì có dấu . (chấm) bạn ơi

0
thg 2 26, 2019 3:47 SA

Không biết Bác có file config để public lên host không ! Mình mới học mà muốn chạy lên server lại không run được . Mong bác chỉ bảo

0
thg 2 26, 2019 3:38 SA

@thint Bài viết của bạn rất hay và chi tiết. Mình muốn hỏi kĩ thêm lí do vì sao, Promise lại bị dừng và bắt các hàng code dưới phải chờ nó chạy xong trong khi nó đã là Asynchronous 😀

0
thg 2 26, 2019 2:53 SA

Bài viết rất hay, xin cảm ơn nhiều! Link phần 3 hỏng rồi. ad cho xin lại link phần 3 với. thanks!

+1
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 2 26, 2019 2:36 SA

@wiliamfeng nếu Form của e chỉ cần lấy kết quả khi bấm Submit thì có lẽ kết qủa đó e k nên lưu vào state vì trong trường hợp này a nghĩ Form có cần phải render lại để làm gì đâu. Ở đây a vẫn cho tất cả là PureComponent vì trong các component ở đây k có cái nào có tình trạng renderProps nên theo a cứ để PureComponent đi. NẾU RESULT Ở ĐÂY LÀ STATE nó vẫn sẽ render tất cả mặc dù mình đang dùng PureComponent do props của nó là onChange đang reference tới 1 hàm _handleInputTextChange là hàm HOF và nó bị thay đổi điều này khiến InputText vẫn sẽ re-render nên trong trường hợp này có thể để InputText là component rồi trong shouldComponentUpdate so sánh nextState.value !== this.state.value thì mới cho render vì value này cũng trùng với value truyền qua hàm onChange. NHƯNG THEO A TRONG TRƯỜNG HỢP FORM KHÔNG THAY ĐỔI THÌ K NÊN DÙNG STATE

Ở đây a ví dụ có 1 InputText tính toán cái gì đó ở đây a ví dụ đơn giản chỉ trả ra value ở hàm onChange. 1 Form nhận vào data và trả ra result ở hàm onSubmit là kết quả cuối cùng của form này.

Còn trường hợp vì sao a lại lấy default mà không khởi tạo luôn vì a đang ví dụ data đó từ server trả về và e đâu biết có những trường nào đâu mà tự nhập sẵn trước được

Đây là demo e bật console lên xem nhé. khi e thay đổi InputText của cái nào thì cái đó render thôi xong rồi submit thì vẫn ra kết quả nhé

https://codesandbox.io/s/n439n6p7p

Thực ra vẫn còn 1 cách nữa mà vẫn dùng state. nhưng comment dài quá nên thôi

+1
Avatar
đã bình luận cho bài viết
thg 2 26, 2019 2:22 SA

Anh cho em hỏi muốn limit bản ghi http://localhost:1281/odata/Product trong cấu hình thì làm thế nào ạ. Vì khi đặt các param kia thì nó sẽ quét tất cả dữ liệu rồi mới lọc ra theo điều kiện. Nếu api connect đến một DB dữ liệu lớn thì không ổn.

0

Còn tuỳ thuộc vào bạn có bao nhiêu điều kiện trong câu truy vấn nữa, nếu mà ít thì bạn nên sử dụng eloquent(pivot table) sẽ tiện hơn, còn nếu muốn điều kiện chặt chẽ hơn thì nên sử dụng query builder nhá.

0

Hi Mỹ, cho mình hỏi chút. Khi mình test bằng Postman phần api user thì khi điền access token vào phần header thì báo lỗi Unauthenticated. 1.PNG Nhưng khi chuyển sang mục authorization rồi điền access token thì lại được. 2.PNG

0
thg 2 25, 2019 11:45 CH

cái này e vẫn chưa thật hiểu. Về lifecycle shouldComponentUpdate thì em biết nó dùng để check xem có nên render() lại một component hay không - tuy nhiên trường hợp sử dụng nó là khi một component cha thay đổi dẫn đến việc render() lại một component con một cách không cần thiết => khi đó ta mới dùng shouldComponentUpdate để kiểm tra thông qua cái này :

shouldComponentUpdate(nextProps, nextState) {
  return this.state.value != nextState.value;
}

tức là ta kiểm tra state hiện tại với state kế tiếp có khác nhau hay không.Nếu khác mới cho render() lại. Còn về PureComponent thì e chưa đọc nhiều nhưng hình như nó là dùng để mình bớt phải sử dụng đến shouldComponentUpdate.

Còn đối với câu hỏi trong trường hợp trên của e thì không có quan hệ cha - con trong component vì ở đây chỉ có duy nhất một component Form thôi. Và khi người dùng thay đổi giá trị ở 1 trường nào đó => bắt buộc phải set lại giá trị của trường đó trong state => vì vậy state chắc chắn bị thay đổi => nên khó tránh khỏi việc render() lại toàn bộ Form lắm => e không biết là có cách nào hạn chế việc đó ko ?

Thêm một ý nữa là trong ví dụ của anh ở trên là anh thực hiện việc setState trong componentDidMount() => làm cho component render() thêm lần nữa => trong khi việc này đâu cần thiết vì mình có thể khởi tạo giá trị cho các trường trong state ngay từ đầu cũng được mà ?

E cũng chỉ đưa ra một vài ý kiến trên sự hiểu biết cá nhân của mình thôi. Có chỗ nào sai xót mong anh giảng giải thêm ạ . Tks anh nhiều !

0
thg 2 25, 2019 5:31 CH

Cảm ơn Toàn đã chia sẻ! Rất hữu ích!

0
Avatar
đã bình luận cho bài viết
thg 2 25, 2019 4:20 CH

@doantrongtai Ghê vậy (??)

+1
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí