Skip to content

Instantly share code, notes, and snippets.

@yyx990803
Created January 21, 2019 17:19
Show Gist options
  • Select an option

  • Save yyx990803/971e31b08b928c7886dde797291e59ec to your computer and use it in GitHub Desktop.

Select an option

Save yyx990803/971e31b08b928c7886dde797291e59ec to your computer and use it in GitHub Desktop.
<SomeComponent>
<template #header>
<div>Header message</div>
</template>
<template #item="{ item }">
<div class="item">{{ item.text }}</div>
</template>
<template #footer>
<div>Footer message</div>
</template>
</SomeComponent>
@yyx990803

yyx990803 commented Jan 21, 2019

Copy link
Copy Markdown
Author

(Try to take a look at the syntax and make a best guess first before reading on!)


If you saw this from Twitter, please vote with your initial guess.

This is a shorthand for the new component slot syntax that's currently being discussed in an RFC which in turn is based on a previous RFC about the new slot syntax itself.

The new base slot syntax is:

<SomeComponent>
  <template v-slot:header>
    <div>Header message</div>
  </template>
</SomeComponent>

So #header is a shorthand for v-slot:header just like @click is short for v-on:click.

@jamesmh

jamesmh commented Jan 21, 2019

Copy link
Copy Markdown

Love it

@birante

birante commented Jan 21, 2019

Copy link
Copy Markdown

Simply Love it too

@mistyharsh

Copy link
Copy Markdown

This is great. It cannot get any better.

@musukvl

musukvl commented Jan 21, 2019

Copy link
Copy Markdown

"#" is id, better to use some other symbol.

@cristijora

Copy link
Copy Markdown

Agree that # might be confused with css id selector.
In my opinion, this is a nice "optional" syntax. Would prefer explicit slot declaration though.

@dylanized

Copy link
Copy Markdown

I agree with @cristijora. Given this optional shorthand syntax, I would still probably use the explicit style

@dskecse

dskecse commented Jan 21, 2019

Copy link
Copy Markdown

I agree with @cristijora

@yyx990803

Copy link
Copy Markdown
Author

It is an optional syntax. Please read the linked RFCs.

@kode8

kode8 commented Jan 21, 2019

Copy link
Copy Markdown

I guessed at the wrapper being a div id=“header” as this is what is used for href anchor.

@kode8

kode8 commented Jan 21, 2019

Copy link
Copy Markdown

@slot:header ?

@sombriks

Copy link
Copy Markdown

quite nice as long it can be applied to a simple div or p too

@OwenMelbz

Copy link
Copy Markdown

I felt that this looks more like a ref=“header” as commonly use ID to identify something, like with the $refs is to identity something

@brandonpittman

Copy link
Copy Markdown

Had a feeling it was for slots. Liked the (version)={ more }.

@Lee182

Lee182 commented Jan 21, 2019

Copy link
Copy Markdown

My initial thoughts that it was object destructing and that all the key values in header would be binded as attribute property.
On seconds thoughs reading the purpose I think # clashes with css for id.

Maybe something like a ^ hat symbol be better because its pointing to something outside the component.

<SomeComponent>
  <template ^header>
    <div>Header message</div>
  </template>

  <template ^item="{ item }">
    <div class="item">{{ item.text }}</div>
  </template>

  <template ^footer>
    <div>Footer message</div>
  </template>
</SomeComponent>

@comfuture

Copy link
Copy Markdown

how about <template &foo>?
& symbol often used as meaning reference in other language. :)

@ChangJoo-Park

Copy link
Copy Markdown

how about <template &foo>?
& symbol often used as meaning reference in other language. :)

👍

@yyx990803

Copy link
Copy Markdown
Author

FYI - please don't discuss alternatives here, Gist doesn't have comment notifications and this is NOT the RFC itself.

Alternative symbols have been extensively discussed in the RFC threads and comments here are unlikely to be considered.

If you have strong opinions, participate in the discussions in the rfcs repo instead.

@nkostadinov

Copy link
Copy Markdown

Looks great , guessed it right away. The # is good because it is associated with id. this will be a great shorthand addition

@kahl-dev

Copy link
Copy Markdown

Awesome

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment