THẢO LUẬN

thg 9 20, 2019 7:05 SA

mình dùng laravel, mà khi dùng CleanwebpackPlugin thì nó Clean hết các file+folder trong Public luôn<Cái plugin nà hoạt động kiểu đơn giản là : Xóa sạch Public-> render file mới > Trong public của mình co chưa index.php và vài thứ khác nữa. Mình ko muốn di chuyển chúng đi nơi khác.

laravelmix có hỗ trợ chức năng này ko nhỉ <Giữ hoặc xóa các File version cũ> Mình search đủ kiểu, đọc tài liệu của laravel nữa nhưng ko thấy cái gì hữu ích.

"nếu dùng laravel thì bạn config trực tiếp ở file webpack.config.js." giúp mình với webpack.mix.js dc ko? Để các file cũ như vậy thì khi dev xong dự án có cả tỉ file mất

0

Nice post, thanks

+1

hay đó bạn, tiếp tục phát huy nhé

0
thg 9 20, 2019 4:27 SA

Good Example

0
thg 9 20, 2019 4:19 SA

Nếu bạn có thể làm việc với webpack và đang dùng vue cli thì bạn có thể eject phần code frontend ra, và sẽ có toàn quyền config những thứ đó, để clean file cũ thì mình dùng CleanWebpack plugin, còn nếu dùng laravel thì bạn config trực tiếp ở file webpack.config.js. Nhưng nói chung việc này mình thấy ko cần thiết lắm bạn à 😉 gọi là hơi chướng mắt 1 chút, 😃)

0
thg 9 20, 2019 4:06 SA

@thanh_tuan await bạn dùng ở đây không có ý nghĩa gì nhé vì bản thân hàm this.props.fetchPosts() không phải là hàm cần đến await. Hàm của bạn bản chất là chỉ dispatch 1 cái action thôi còn lại làredux-saga sẽ lắng nghe action đó và phản hồi với hành động tương ứng chứ nó không giống như bạn viết 1 function bình thường và chạy lần lượt từ trên xuống dưới như trong code của bạn:

await this.props.fetchPosts(); // Saga xử lý cái này
const {posts} = this.props; // Cái này chạy luôn chứ không đợi saga xử lý xong -> posts = []
this.setState({posts})
+1

Bài viết dành cho Junior nhưng bạn đang giải thích sai dẫn tới việc các bạn ấy hiểu nhầm về những khái niệm, rồi tới khi phỏng vấn đều trả lời sai hết cả. Điển hình là mình mới pv 1 bạn trả lời CSRF y hệt bạn và mình cũng đánh giá là bạn ấy chưa hiểu về CSRF là gì.

  • Token này dùng để xác minh rằng người dùng đã được chứng thực là người thực hiện yêu cầu cho ứng dụng: Cái này làm các bạn ấy hiểu nhầm rằng CSRF là 1 token xác thực người dùng (kiểu token xác minh bạn là ai). Cái này không đúng nhé. CSRF thường là token ngẫu nhiên được sinh ra để phòng chống 1 Action bị sử dụng không hợp lệ BÊN NGOÀI ứng dụng (như click vào link, gọi form từ trang web lạ hay ứng dụng khác). Token này thường chỉ liên quan tới CLIENT (như app, web) gọi tới backend mà không liên quan gì tới User. Do đó kể cả khi user chưa được xác thực (hoặc chưa đăng nhập) thì CSRF vẫn tồn tại.
  • Event - Listener sinh ra không phải để phục vụ mục đích DRY. Theo cách giải thích phía trên thì các bạn khác sẽ hiểu nhầm là: Khi bạn có 1 đoạn code dài được dùng ở nhiều nơi thì hãy viết event-listener. Sai nhé. Event sinh ra là để các tách việc xử lý logic khi 1 thay đổi gì đó vừa diễn ra và những "hệ quả" của thay đổi đó. Ví dụ như bạn mừa mới thực hiện hành động mua nhà. Cơ bản là việc mua của bạn xong xuôi rồi, bạn cũng không có vấn đề gì với nhà đầu tư nữa. Ấy vậy mà ngay mấy hôm sau có 1 thằng làm nội thất gọi cho bạn, 1 thằng làm cửa sắt gọi cho bạn mời, 1 bên công an gọi bạn đi làm tạm trú. Vậy thì event ở đây là bạn "mua nhà", còn listener là thằng làm nội thất, thằng làm cửa, chú công an,... đã lắng nghe sự kiện "mua nhà" của bạn để có hành động gọi cho bạn đó.
+5
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 9 20, 2019 3:30 SA

@HuyDQ umk, mình cũng đã suy nghĩ kỹ về vấn đề này. Thực sự thì làm như vậy mình thấy rất kỳ cục (khi đã tạo store để dữ liệu vào xong lại mất công lấy dữ liệu từ store để update vào state thực sự là << stupid >>

Nhưng vấn đề của mình lại cần phải làm vậy, mình vẫn chưa biết trình bày sao để bạn hiểu được. Thôi để mình suy nghĩ thêm xem có hướng nào giải quyết ổn thỏa không.

Nhưng về cơ bản bạn có thể giải thích giúp mình tại sao mình dùng async-await rồi mà vẫn không được vậy ?

0
thg 9 20, 2019 3:26 SA

có các nào Clear Các file Js cũ sinh ra khi mình dev ko nhỉ Đức?
Mỗi lần save component nó lại render 1 lần

0

ở hàm test em cho nó chạy qua nhiều đời mới ra được nghiệm đúng chứ

       for (int i=0;i<100;i++)
	{
		jang.danhgia();
		jang.Print();
		jang.chonloc();
		jang.laighep();
		jang.dotbien();
	}		
0

Mọi thứ trong bài đều chết cả rồi thớt ơi, github cũng không có Readme luôn, à có mỗi cái soundcloud không liên quan thì lại vào được 😀

0
thg 9 20, 2019 2:36 SA

mình thì chưa gặp lỗi này nên bạn thử tham khảo ở đây nhé: https://askubuntu.com/questions/254491/failed-to-get-canonical-path-of-cow/757130

0
thg 9 20, 2019 2:16 SA

@thanh_tuan nếu bạn có lý do thực sự cần thiết để lấy data từ store để dùng lại trong state thì mình nghĩ bạn nên gọi API trực tiếp từ component đó mà không cần đi qua store nữa

+2

Ngàoo, bài viết hay quá, thả tym ❤️

Done 90% task trên Redmine rồi 😄

+3
thg 9 20, 2019 12:28 SA

=)) vào upvote cho t với ô ơi

+1
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 9 19, 2019 11:14 CH

bạn @HuyDQ ơi, bạn giúp mình thêm vấn đề này với.

Ví dụ ở trên, trong component PostsIndex, tại lifecycle componentDidMount của nó mình thực hiện gọi API để fetch data rồi push nó vào trong store , sau đó ở dưới chỗ hàm render mình lấy data trong store ra để xài.

Tuy nhiên với trường hợp của mình, mình muốn sau khi fetch data trong componentDidMount xong, thì lấy data từ store ra và đưa nó vào trong state luôn, sau đó mới lấy data từ state ra để xài.

Mình có làm ở đây: https://stackblitz.com/edit/react-redux-saga-post-demo-g5v1tu?file=components%2FPostsIndex.js

Nhưng nó không chạy như mình mong đợi, bạn có thể sửa giúp mình đoạn này được không.

0
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í