在第七章我们已经介绍了如何使用npm命令全局安装node包,本节我们需要安装一个名为@vue/cli的包来创建我们的vue项目,安装代码如下所示:
npm install -g @vue/cli
安装完成之后,在命令行可以使用Vue命令命令创建一个vue项目,具体命令如下所示
vue create hello
安装过程需要连接国外服务器下载项目模板和依赖包,如果网速过慢可以在配套示例代码中下载项目模板,然后使用cnpm下载依赖包。
创建完成之后,让命令行工具进入到hello目录中,然后执行下面的命令启动项目:
npm run serve
项目启动后,会在8080端口开启一个服务器,我们直接访问http://localhost:8080/,就可以访问刚才创建的这个Vue项目了,如果成功访问会看到如下图所示的页面。
创建的项目目录结构如下所示:
├─hello
│ ├─node_modules
│ ├─public
│ │ ├─favicon.ico
│ │ ├─index.html
│ ├─src
│ │ └─assets
│ │ │ └─logo.png
│ │ └─components
│ │ │ └─HelloWorld.vue
│ │ └─App.vue
│ │ └─main.js
│ ├─babel.config.js
│ ├─package.json
│ ├─README.md
以vue为后缀的文件是vue的单文件组件,我们在开发vue应用的过程中,主要任务就是去编写这些以vue为后缀的文件。
最近几年前端开发非常盛行的开发方式是组件化开发,要想理解什么是组件化开发,需要先理解什么是组件。
大家可以把组件理解成一个,可以自定义的,有更强大功能的标签。
而我们开发web项目,其实就是在编写和组装这些组件,例如融职教育的官网,可以将整个应用拆分成header,slider等等内容。
这样用组件拆分的方式开发项目,思路清晰,简洁高效,而且还可以复用相同的组件。
import和export是ES2015的语法,类似于node的require和module.export
1 import Vue from 'vue'
2 import App from './App.vue'
3 Vue.config.productionTip = false //开发过程中的错误提示
4 new Vue({
5 render: h => h(App),
6 }).$mount('#app')
render
方法是一个ES6语法的简写,如果完整的写法可以看做如下语法
1 new Vue({
2 render (createElement) {
3 return createElement(App);
4 }
5 }).$mount('#app')
render
方法中的createElement
可以根据组件生成DOM节点,这样,就成功地将单文件组件App.vue加载到index.html中了。
我们删除App.vue的默认代码,只留下一个组件的估价,代码如下所示:
<template>
<!-- 组件的应用 -->
</template>
<script>
// 导入其他组件,定义该组件的数据、方法等
</script>
<style>
/* 组件的样式 */
</style>
默认情况下,vscode编辑器不能高亮显示.vue文件,需要安装vetur插件。
了解了基本语法之后,我们来编写第一个组件,示例代码如下所示:
1 <template>
2 <div>
3 <h1>{{message}}</h1>
4 </div>
5 </template>
6
7 <script>
8 export default {
9 data(){
10 return {
11 message:"hello vue"
12 }
13 }
14 }
15 </script>
上面的案例是第一节讲过的一个案例,将data中的数据在文本中显示,但是与此前的代码有所区别:
初学者很容易将data的用法写错,这里需要十分注意。其余的写法,例如属性绑定,事件绑定,与此前学习过的语法没有区别。
绑定属性和事件的方法如下所示:
1 <template>
2 <div>
3 <h1 :title="message">hello world</h1>
4 <button @click="sayHi">say hi</button>
5 </div>
6 </template>
7
8 <script>
9 export default {
10 data(){
11 return {
12 message:"hello vue"
13 }
14 },
15 methods:{
16 sayHi(){
17 alert("Hi!")
18 }
19 }
20 }
21 </script>
按照本章的内容,完成下列操作:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。