* 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)
 |