DEV Community

Discussion on: Vue 3 just got me from interested to excited

 
michi profile image
Michael Z • Edited

I like this example. In Vue 2 we exported an entire object using export default for the template to use. With <script setup> we export individual parts for the template to use. It's quite similar.

Thread Thread
 
lucaguada profile image
Luca Guadagnini

Yep I got the point, but what I'm actually trying to say is «export» has now another special meaning for build task, not for the language itself or for us («us» meant as «we developers that know JS only»). In order to understand what is behind the build process, we have to read docs to understand that «export» doesn't actually exports a constant, but it helps the build task to create a «special» component with your constant inside. Worst than that you have to specify a... I don't know how to call it a «hashtag»? an «annotation»? an «empty non-compliant attribute»? anyway you have to specify setup in your script tag, otherwise export loses its meaning to build task.

Can't you see the issue here?

Thread Thread
 
terabytetiger profile image
Tyler V. (he/him)

I think there's a disconnect here, so I want to summarize the key points of what I was trying to clarify:

  • export in Vue works the same as in Vanilla JS.
  • When Vue compiles an application, it is optimizing the code - not changing the meaning of JS keywords.

Using Vue is the same as any other framework/library in that you need to adhere to the expected format.
<script setup> is a proposed acceptable shorthand format, not unlike @click or <style scoped>.

If you have specific questions, I'd love to help clarify more. Concerns about the reliability or user-friendliness of the RFC should be expressed on the RFC.

Thread Thread
 
lucaguada profile image
Luca Guadagnini

So you're just telling me that export is used by Vue like always, Vue imports constants, functions, etc... from my script and with that it builds the component? script just says - if understood correctly - imports separately, not altogether like we used to do it in Vue2. Something like that?

Sorry I can't follow the entire RFC, too big :-D