1. 前言
2. 什么 Vue.js 单文件组件
用类 HTML 语法描述一个 Vue 组件,每个 .vue 文件包含三种类型的顶级语言块,分别是 <template>
、<script>
、 <style>
。除了这三种类型的顶级语言块,还允许添加可选的自定义块。
uni-app 只支持 vue 单文件组件(.vue 组件)。其他的诸如:动态组件,自定义 render,和
<script type="text/x-template">
字符串模版等,在非H5端不支持。
3. 三大顶级语言块
下面我们来介绍一下三大顶级语言块 <template>
、<script>
和 <style>
。
3.1 创建 .vue 文件
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>
3.2 <template>
部分
每个 .vue 文件最多包含一个 <template>
标签。<template>
里面包含 html 代码,在这里面定义了页面模板,也就是页面上显示的内容。在 <template>
标签的下一级只能有一个子节点元素,如果有多个子节点元素就会报错。
正确实例:
<template>
<view>
...
</view>
</template>
错误实例:
<template>
<view>
...
</view>
<view>
...
</view>
</template>
3.3 <script>
部分
这个部分默认导出是一个 Vue.js 的组件对象,也可以导出由 Vue.extend() 创建的扩展对象,但是Vue.js 的组件对象是更好的选择,所以这部分了解一下就可以了,导出的部分一般不需要我们操作。
1. data对象
正确实例:
data () {
return {
mark:
}
}
错误实例:
data: {
mark:
}
2. methods对象
实例:
methods: {
addMark () {
//通过this.调用data对象中定义的变量
console.log("mark变量为:",this.mark)
}
}
3.4 <style>
部分
实例:
<style scoped>
/* write css */
</style>
实例:
<style lang="sass">
/* write Sass */
</style>
4. 重要属性
4.1 lang 属性
实例:
<template lang="jade">
<div> {{ msg }} </div>
</template>
<script lang="ts">
import Vue from 'vue'
export default Vue.extend({
data () {
return {
msg: 'Hello world'
}
}
})
</script>
4.2 src 属性
实例:
<template src="./template.html"></template>
<style src="./style.css"></style>
<script src="./script.js"></script>
5. 小结
本节主要介绍了 Vue 单文件组件的应用,以及 <template>
、<script>
和 <style>
三大顶级语言块的解析,本节的重点如下: