@wiliamfeng nên nhớ các Component Form View kia e phải để làm PureComponent nhé. chưa biết thì đọc thêm về PureComponent, shouldComponentUpdate, shallow compare trong react nhé.
Và nên nhớ lúc đầu e nên tạo giá trị mặc định bằng cách biến đổi cái mảng ví dụ data như của a ở trên ra để setState mặc định nhé
khi componentDidMount chạy results sẽ ra default như sau
việc sử dụng block trong rails thì phần lớn các bạn chỉ dùng để phục vụ cho loop, ngoài ra nếu dùng với ruby thì nó cũng có nhiều tác dụng nhỏ nhỏ khác ví dụ
def my_method
yield("John", 2)
end
my_method { |name, age| puts "#{name} is #{age} years old" }
Bạn hiểu đúng, mình ko phản bác đâu , đúng là nó chính là nền tảng để bạn sử dụng cho các method loop.
Nhưng định nghĩa về block thì ko phải là định nghĩa nó là nền tảng của phần nào mà định nghĩa chính bản thân thằng block "đơn giản chỉ là một khối lệnh thôi", ý mính là vậy
theo mình hiểu thì các iterator method method của bạn chính là các instance method đúng ko? và nó được sử dụng cho vòng loop (kiểu áp dụng iterator pattern - phần này là áp dụng nhé) đúng ko? Với mình vẫn đang suy nghĩ định nghĩa của block nó đơn giản chỉ là khối lệnh thôi chứ đâu phải là nền tảng của riêng các method dùng để loop nhỉ?
Mình nghĩ là phần cuối bài là truyền tham chiếu bạn ạ, bởi vì các số ở trong Ruby cũng là object, chứ không đơn giản chỉ là giá trị. .
Còn Block thì đúng nó là một khối lệnh không được định danh thành object, nhưng mình thấy ngoài việc trở thành nền tảng của một vòng lặp, nó chẳng có tác dụng gì khác. Cũng có thể là kiến thức của mình chưa sâu.
Từ "iterators" nghĩa là vòng lặp và iterator method trong Ruby là các method liên quan đến vòng lặp. Các iterator method thường được sử dụng bởi các loại object bao gồm nhiều phần tử - hay còn gọi là collection. Trong Ruby, mình mới chỉ biết 3 loại collection, đó là array , hash và range . Các iterator method được tích hợp sẵn trong các class của các collection trong Ruby, có thể kể đến là : each, select, map , collect , inject, ...... . Ngoài ra , mình có thể tự tạo một iterator method trong một class bất kỳ, nếu sử dụng từ khóa yield . Ví dụ , mình có thể mô phỏng lại một method tương tự method each bằng đoạn code dưới đây:
class P
def initialize a,b
@a = a
@b = b
end
def each
yield @a
yield @b
end
end
Bạn cho mình hỏi thêm iterators method trong ruby là loại method nào vậy?
Với việc truyền tham số vào block ở phần cuối của bài viết theo mình hiểu là truyền giá trị có đúng không ạ? hay đó là truyền tham chiếu của biến n?
Cảm ơn bạn
Với cả mình nghĩ định nghĩa của block đơn giản nó là chỉ là một khối lệnh không được định danh thành object thôi chứ không phải là nền tảng của các vòng loop đâu đúng ko nhỉ? bạn cho ý kiến nhé
bạn có thể để bất cứ nơi đâu, dùng đúng name space của nó là dc mà. Ví dụ ở trên thay vì return time() thì return new App\Computer() hoặc new App\Models\Computer() tùy để ở đâu thì gọi như thế
B trả về browser mà để nguyên code react thì b phải nhúng react vào <head>. Nếu không thì trên server b phải dùng tool đẻ gen toàn bộ app react ra dạng string html rồi trả về cho browser
THẢO LUẬN
@wiliamfeng nên nhớ các Component Form View kia e phải để làm PureComponent nhé. chưa biết thì đọc thêm về PureComponent, shouldComponentUpdate, shallow compare trong react nhé. Và nên nhớ lúc đầu e nên tạo giá trị mặc định bằng cách biến đổi cái mảng ví dụ data như của a ở trên ra để setState mặc định nhé
khi componentDidMount chạy results sẽ ra default như sau
Comment chuẩn !
Óc Hợi dạo này còn marketing ở cuối post luôn hả. Tiếp tục giữ lửa nhé (go)
bài viết hữu ích quá, cảm ơn tác giả.
@dat.hedspi cảm ơn bạn. Giờ thì mình hiểu hơn một chút rồi.
việc sử dụng block trong rails thì phần lớn các bạn chỉ dùng để phục vụ cho loop, ngoài ra nếu dùng với ruby thì nó cũng có nhiều tác dụng nhỏ nhỏ khác ví dụ
Đơn giản nhưng vẫn hữu ích đúng ko
@dat.hedspi ok, cảm ơn bạn nhé.
việc passing object trong rails nó là passing referrence value chứ ko phải chỉ là truyền tham chiếu đâu, bạn có thể tham khảo thêm ở đây nhé https://launchschool.com/blog/object-passing-in-ruby
Bạn hiểu đúng, mình ko phản bác đâu
, đúng là nó chính là nền tảng để bạn sử dụng cho các method loop.
Nhưng định nghĩa về block thì ko phải là định nghĩa nó là nền tảng của phần nào mà định nghĩa chính bản thân thằng block "đơn giản chỉ là một khối lệnh thôi", ý mính là vậy 
@dat.hedspi
iterator methodlà cácinstance methodđược sử dụng cho vòng lặp. Chuẩn bạn ạ.Trong sách Ruby mình đính kèm ở cuối bài, nó có một câu như thế này:
nên mình nghĩ là mình hiểu đúng.
theo mình hiểu thì các
iterator methodmethod của bạn chính là cácinstance methodđúng ko? và nó được sử dụng cho vòng loop (kiểu áp dụng iterator pattern - phần này là áp dụng nhé) đúng ko? Với mình vẫn đang suy nghĩ định nghĩa của block nó đơn giản chỉ là khối lệnh thôi chứ đâu phải là nền tảng của riêng các method dùng để loop nhỉ?Bạn cho ý kiến nhé
Mình nghĩ là phần cuối bài là truyền tham chiếu bạn ạ, bởi vì các số ở trong Ruby cũng là object, chứ không đơn giản chỉ là giá trị.
.
Còn
Blockthì đúng nó là một khối lệnh không được định danh thành object, nhưng mình thấy ngoài việc trở thành nền tảng của một vòng lặp, nó chẳng có tác dụng gì khác. Cũng có thể là kiến thức của mình chưa sâu.Câu trả lời của mình có thể chưa hoàn toàn chính xác. Mong bạn đóng góp thêm.
Từ "iterators" nghĩa là vòng lặp và
iterator methodtrong Ruby là các method liên quan đến vòng lặp. Cáciterator methodthường được sử dụng bởi các loạiobjectbao gồm nhiều phần tử - hay còn gọi làcollection. Trong Ruby, mình mới chỉ biết 3 loạicollection, đó làarray,hashvàrange. Cáciterator methodđược tích hợp sẵn trong các class của cáccollectiontrong Ruby, có thể kể đến là :each, select, map , collect , inject,...... . Ngoài ra , mình có thể tự tạo mộtiterator methodtrong một class bất kỳ, nếu sử dụng từ khóayield. Ví dụ , mình có thể mô phỏng lại mộtmethodtương tự methodeachbằng đoạn code dưới đây:Trường hợp phải join hai hay nhiều bảng CSDL thì làm sao ạ?
Bạn cho mình hỏi thêm
iterators methodtrong ruby là loại method nào vậy?Với việc truyền tham số vào block ở phần cuối của bài viết theo mình hiểu là truyền giá trị có đúng không ạ? hay đó là truyền tham chiếu của biến n?
Cảm ơn bạn
Với cả mình nghĩ định nghĩa của block đơn giản nó là chỉ là một khối lệnh không được định danh thành object thôi chứ không phải là nền tảng của các vòng loop đâu đúng ko nhỉ? bạn cho ý kiến nhé
Good reading
bạn có thể để bất cứ nơi đâu, dùng đúng name space của nó là dc mà. Ví dụ ở trên thay vì return time() thì return new App\Computer() hoặc new App\Models\Computer() tùy để ở đâu thì gọi như thế
B trả về browser mà để nguyên code react thì b phải nhúng react vào <head>. Nếu không thì trên server b phải dùng tool đẻ gen toàn bộ app react ra dạng string html rồi trả về cho browser