Ngốn là đúng rồi bạn, nhưng chạy headless cũng đỡ kha khá rồi vì bỏ được vụ rerender. Nếu bạn mốn bớt ngốn thì có thể dùng curl thay thế nhưng sẽ phức tạp hơn khá nhiều.
Chuỗi kata full width theo thứ tự nó như này
ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
Nên kata fullwidth thì phải như này mới đúng chứ bác
/^([ァ-ヶ]|ー)+$/
@Minh123 Trong java thì không có sự thể hiện tường minh của mix-in, tuy nhiên ở bài này không chỉ rõ là đang nói đến OOP của ngôn ngữ nào, nên theo mình thì cũng nên mô tả thêm về các chức năng có trong OOP nói chung
@hungify Cách 3 có vẻ là chính xác rồi đó bạn. Mình cũng là rookie TypeScript thôi nên cũng ko tránh sai sót 😅
Giải thích một tí cái lỗi eslint no-empty-interface thì đây là một convention mặc định của TS để hạn chế việc khai báo các interface thừa thãi/vô nghĩa. Trong trường hợp này mình khai báo thêm interface MenuItemProps extends BaseMenuItem với mục đích là tách biệt interface dùng cho component với interface dùng cho menu item, cover những trường hợp có thể component sẽ chứa những property khác nữa, nhưng vì chưa biết sẽ có gì nên hiện tại 2 interface hoàn toàn giống nhau => eslint báo lỗi trên.
Bạn có thể comment ignore như cách bạn đang làm hoặc bỏ hẳn MenuItemProps và dùng BaseMenuItem luôn:
THẢO LUẬN
fgfdgf
hì thanks e ^^
Ngốn là đúng rồi bạn, nhưng chạy headless cũng đỡ kha khá rồi vì bỏ được vụ rerender. Nếu bạn mốn bớt ngốn thì có thể dùng curl thay thế nhưng sẽ phức tạp hơn khá nhiều.
mình dùng puppeteer mà mỗi lần nó crawl 1 trang web kiểu clientsiderendering thì rất ngốn cpu
@khangnd Nhưng mà viết như này sẽ lỗi nha anh
const props = defineProps<BaseMenuItem>();vueCái này em quên note ở comment trên
Note: https://vuejs.org/api/sfc-script-setup.html#typescript-only-features
https://github.com/vuejs/core/issues/4294
@longb1997 anh nghỉ Appota chắc cũng phải 4 năm rồi em =)))
Quá hay luôn bạn ơi!!
Bài viết hay a, à ngoài lề cho em hỏi giờ anh còn làm ở Appota không?
ecc... cái này ko khác tí nào trong https://kotlinlang.org/docs/annotations.html... đúng kiểu thay vì dùng google dịch nó hơi lủng củng thì bác dịch lại cho dễ đọc... Nhưng thông tin còn ít hơn trong file nguồn kia... Cái mình muốn biết là thằng này dùng để làm gì và ví dụ minh hoạ của nó thì vẫn chưa tìm đc
Sau khi tìm hiểu mình thấy có chỗ này đọc khá ok https://techmaster.vn/posts/36901/annotation-trong-java#:~:text=Annotation là gì%3F,biên dịch Java và JVM.
cảm ơn bạn
Well done!
Chuỗi kata full width theo thứ tự nó như này ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ Nên kata fullwidth thì phải như này mới đúng chứ bác /^([ァ-ヶ]|ー)+$/
cảm ơn tác giả rất nhiều nha! em đang làm web về nhà đất https://nhadatkygoi.com/ . Cũng loai hoay khoai lắm khoản này
Mình góp vui một ví dụ bên PHP nhé. https://github.com/nikerz1406/DemoDesignPatternInterpreterPHP
bạn có thể bổ sung thêm một phần show ra hết code trong file app.js được không, nhìn tổng quan ý
@Minh123 Trong java thì không có sự thể hiện tường minh của mix-in, tuy nhiên ở bài này không chỉ rõ là đang nói đến OOP của ngôn ngữ nào, nên theo mình thì cũng nên mô tả thêm về các chức năng có trong OOP nói chung
@huytvomi Nhiều khi mình không được lựa chọn
cảm ơn bác đã hiểu hoàn cảnh của em
Cảm ơn anh về bài viết tuyệt vời này 🥰
@hungify Cách 3 có vẻ là chính xác rồi đó bạn. Mình cũng là rookie TypeScript thôi nên cũng ko tránh sai sót 😅
Giải thích một tí cái lỗi eslint
no-empty-interfacethì đây là một convention mặc định của TS để hạn chế việc khai báo các interface thừa thãi/vô nghĩa. Trong trường hợp này mình khai báo thêm interfaceMenuItemPropsextendsBaseMenuItemvới mục đích là tách biệt interface dùng cho component với interface dùng cho menu item, cover những trường hợp có thể component sẽ chứa những property khác nữa, nhưng vì chưa biết sẽ có gì nên hiện tại 2 interface hoàn toàn giống nhau => eslint báo lỗi trên.Bạn có thể comment ignore như cách bạn đang làm hoặc bỏ hẳn
MenuItemPropsvà dùngBaseMenuItemluôn: