* Added a section for vue single-file-components Brief description of the single file components in Vue * fix: added front matter block
57 lines
2.1 KiB
Markdown
57 lines
2.1 KiB
Markdown
---
|
|
title: Single File Components
|
|
---
|
|
|
|
# Single File Components
|
|
One of the many benefits of using Vue, is the option of making a Single File Component. This component, as the name suggests, is a regular Vue component, living in its own file.
|
|
|
|
Having your component in its own file, enables you to have a better structure and overview of your application. It also enables you to have syntax highlighting in your editor of choice.
|
|
|
|
## Structure
|
|
A Single File Component is made up of three sections:
|
|
* Template, where you put your HTML that makes up the component
|
|
* Script, where your logic exists
|
|
* Style, where your styling to your component exists
|
|
|
|
## Template
|
|
You can use the default language, HTML, or you can use other templating engines, such as `Jade` or `Pug`.
|
|
```html
|
|
<template>
|
|
<div>
|
|
<h1>I am a headline</h1>
|
|
</div>
|
|
</template>
|
|
```
|
|
Basic example of html in a single file component
|
|
|
|
|
|
## Script
|
|
The script section is where all of your logic exists. You can use the default language, JavaScript. You also have the option of using `TypeScript` instead.
|
|
It's also in this section all of your properties, methods and watchers exists, to make your component work.
|
|
|
|
```html
|
|
<script>
|
|
export default {
|
|
name: "foo-component",
|
|
data() {
|
|
return {
|
|
message: "I am a message"
|
|
}
|
|
},
|
|
methods: {
|
|
sayHello() {
|
|
console.log("Hello world");
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
```
|
|
You can check out how to use Vue, either by browsing this site, or checking out Vue's own documentation, [here](https://vuejs.org/v2/guide/index.html)
|
|
|
|
|
|
## Style
|
|
The final block in the single file component house. This section is where you can style your component. You can also choose, whether or not it should be non-scoped or scoped. Scoped means that the compiled code automatically gets ID's that is specific to the component, that the styling will affect. Non-scoped means that elements outside of the component, also will get targeted for the styling.
|
|
|
|
## Read more
|
|
If you want to read more about the Single File Components, you can do so [here](https://vuejs.org/v2/guide/single-file-components.html)
|