mutoe / vue3-realworld-example-app

Explore the charm of Vue composition API! Vite?
https://vue3-realworld-example-app-mutoe.vercel.app
MIT License
960 stars 344 forks source link

Minor enhancements #92

Open sajadhsm opened 2 years ago

sajadhsm commented 2 years ago

As I was reading through the source code, I've listed some minor issues which may improve the project:

  1. Route guards (Currently we can move to the login page by typing the address in the URL bar even when we are already logged in)
  2. mapValidationResponse does not handle 403 error
  3. No need to write <template #default> for suspense
  4. Enforce an import order convention
  5. Reset errors when re-submitting the forms
  6. useArticles composable: 6.1. In fetchArticles function, since articleType can only have one value, it's better to use if-else rather than only if to skip other checks. 6.2 getArticlesMeta function is acting like a composable. So maybe it's better to rename it to useArticlesMeta
  7. Vue docs doesn't recommend using generic argument for reactive(). So it may be better to change current generic usage.
  8. In AppLink component, useAttrs and v-bind="attrs" can be removed because of Fallthrough Attributes
  9. Add "Not Found" page

I would like to help fix these issues if they are valid to you. :D

mutoe commented 2 years ago

Your attentiveness is admirable!

Some of the content of this repository may seem less appropriate with Vue's update, and some of your suggestions are fine. My focus is not on Vue for the time being, if you can, PR welcome!

mutoe commented 2 years ago
  1. In AppLink component, useAttrs and v-bind="attrs" can be removed because of Fallthrough Attributes

~I think it is not a good idea to do this. This will lose the type of the component props. If IDE or VLS can deduce the type of the component's root element, I think it makes sense to do so, and until then, I don't think it's good practice.~

I got it wrong :p