6、VueJs 填坑日记之初识*.Vue文件

上一篇博文中,咱们将接口的地址经过webpack代理到了本地,解决了跨域的问题。在以前的文章中,咱们一直对项目进行配置,并无真正的切入正题,可能不少人还不明白咱们要作什么?那么今天,咱们就要开写代码了。忠心感谢FungLeo,是大家无私的奉献,才让咱们有了学习的参考,如下是地址:
本文转载:http://blog.csdn.net/fungleo/article/details/77575077javascript

什么是*.vue文件
首先,咱们用 vue-cli 脚手架搭建的项目,里面咱们已经遇到了不少,如 index.vue 或者 App.vue 这一的文件了。这究竟是个什么东西?若是是初次接触 vue 开发的同窗,可能以前没有见过这个东西。*.vue 文件,是一个自定义的文件类型,用相似HTML的语法描述一个Vue组件。每一个.vue文件包含三种类型的顶级语言块 <template>, <script> 和 <style>。这三个部分分别表明了 html,js,css。css

其中 <template> 和 <style> 是支持用预编译语言来写的。好比,在咱们的项目中,咱们就用了 scss 预编译,所以,咱们是这样写的:html

<style lang="scss">

html 也有本身的预编译语言, vue 也是支持的,不过通常来讲,咱们前端人员仍是比较中意 html 原生语言,因此,我就不过多阐述了。前端

另外,我在 App.vue 文件中,已经用一句 @import "./style/style"; 将咱们的样式给写到指定的地方去了。因此,在后面全部的个人文章中,是不会出现这个部分的内容的。全部样式,都会在 src/style/ 文件夹中对应的位置去写。我这样作的好处是,不须要重复的引入各类 scss 基础文件,而且作到了项目的样式代码的可管控。vue

 

*.vue 文件代码解析
首先,咱们来简单看一下:java

<template>
	<div>
		<Header></Header>
		<div class="article_list">
			<ul>
				<li></li>
			</ul>
		</div>
		<Footer></Footer>
	</div>
</template>
<script>
import Header from '../components/header.vue'
import Footer from '../components/footer.vue'
export default {
	components: { Header, Footer },
	data () {
		return {
			list: []
		}
	},
	created () {
		this.getData()
	},
	methods: {
		getData () {
			this.$api.get('topics', null, r => {
				console.log(r)
			})
		}
	}
}
</script>
<style>
	.article_list {margin: auto;}
</style>

 

以上就是一个简单的 *.vue 文件的基本结构。咱们一部分一部分的来解释。webpack

 

template 部分
如下,我再也不称呼它为 *.vue 文件了。改为为 vue 组件。首先,一个 vue 组件,他的 template 则表明它的 html 结构,相信你们能够理解了。可是须要注意的是,咱们不是说把代码包裹在 <template></template> 中就能够了,而是必须在里面方置一个 html 标签来包裹全部的代码。 本例子中,咱们采用了 <div></div>标签。web

你们看到 <Header></Header> 这个代码的时候确定很奇怪,这是个什么玩意儿。其实,这是一个自定义组件。咱们在其余地方写好了一个组件,而后就能够用这种方式引入进来。一样 <Footer></Footer> 也是一个组件。vue-cli

 

script 部分
首先,咱们须要两个自定义组件,咱们先引用进来。以下格式,比较好理解吧。api

import Header from '../components/header.vue'
import Footer from '../components/footer.vue'

 

其次,除了引用的文件,咱们将全部的代码包裹于以下的代码中间:

export default {
    // 这里写你的代码,外面要包起来。
}

 

咱们先引入了 Header 和 Footer 这两个组件的源文件,接下来,咱们要把引用的组件给申明到 components 里面去。这样,咱们就能够在 template 里面使用了。

components: { Header, Footer },

data是咱们的数据。咱们的演示代码,给了一个 list 的空数组数据。在 template 中,咱们可使用 this.list 来使用咱们的数据。这个咱们后面的文章中会讲到,这里不去深刻,认识它就能够了。

data () {
    return {
        list: []
    }
},

created 表示当咱们的组件加载完成时,须要执行的内容。好比这里,咱们就让组件在加载完成时,执行一个叫 this.getData() 的函数。另外created是vuejs中的勾子函数之一。(具体的勾子函数请参考附录)

created () {
    this.getData()
},

methods是咱们的这个组件的方法,也能够说是函数。好比,上面的代码就表示,咱们的组件自定义了一个叫 getData() 的方法函数。

methods: {
	getData () {
		this.$api.get('topics', null, r => {
			console.log(r)
		})
	}
}

更多关于vue的语法解释请参见:https://cn.vuejs.org/v2/guide/syntax.html

 

style 部分
这里比较简单,就是针对咱们的 template 里内容出现的 html 元素写一些样式。以下,个人代码:

<style>
.article_list {margin: auto;}
</style>

到这里,咱们应该对 vue 组件文件有了必定的认知。后面的博文中,将会涉及到比较多的各类写法,所以,建议在阅读完本文后,花比较多的时间,去查看 vue 的官方文档。虽然文档你不必定能所有看懂,但要有一个大概的认识,不然下面的学习将会比较困难。

附录
勾子,能够理解为vuejs的生命周期,而函数则是生命周期内各个阶段的事件方法。以下图

 

相关文章
相关标签/搜索