Vue 入门之项目目录结构介绍

简介:

Vue 是一套用于构建用户界面的渐进式框架,与其它大型的页面框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

关于Vue环境搭建的内容,本文不再介绍,不清楚的同学可以访问Vue环境搭建或者查看官网相关内容的介绍:
https://cn.vuejs.org/v2/guide/installation.html

初始化项目

首先,我们使用如下的命令创建一个Vue项目。

vue init webpack 项目名字

然后项目会有一些初始化的设置,该部分内容的具体含义如下:

  • Target directory exists. Continue? (Y/n) :直接回车默认(然后会下载
    vue2.0模板);
  • Project name (vue-test) :项目名称,直接回车默认;
  • Project description (A Vue.js project) :Vue项目描述,直接回车默认;
  • Author:项目拥有者名称,直接回车默认;
  • Use ESLint to lint your code? n:是否启用eslint检测,选择"N";
  • pick an eslint preset: 默认Standard;
  • setup unit tests with karma + mocha?N:是否需要添加单元测试,选择不需要;
  • setup e2e tests with Nightwatch?N:是否需要添加E2E测试,选择不需要。
    这里写图片描述
    然后打开终端,执行“npm install”命令安装依赖库。
cd 项目名字
npm install

如果开发中需要安装一些额外的第三方库,可以使用如下面的命令:

npm install 库名称 –save

然后使用下面的命令启动或者发布项目

npm run dev   //启动项目
npm run build   //发布项目

Vue目录结构介绍

打开新建的Vue项目,其目录结构如下图所示。

├── index.html                      入口页面
    ├── build                           构建脚本目录
    │   ├── build-server.js                 运行本地构建服务器,可以访问构建后的页面
    │   ├── build.js                        生产环境构建脚本
    │   ├── dev-client.js                   开发服务器热重载脚本,主要用来实现开发阶段的页面自动刷新
    │   ├── dev-server.js                   运行本地开发服务器
    │   ├── utils.js                        构建相关工具方法
    │   ├── webpack.base.conf.js            wabpack基础配置
    │   ├── webpack.dev.conf.js             wabpack开发环境配置
    │   └── webpack.prod.conf.js            wabpack生产环境配置
    ├── config                          项目配置
    │   ├── dev.env.js                      开发环境变量
    │   ├── index.js                        项目配置文件
    │   ├── prod.env.js                     生产环境变量
    │   └── test.env.js                     测试环境变量
    ├── mock                            mock数据目录
    │   └── hello.js
    ├── package.json                    npm包配置文件,里面定义了项目的npm脚本,依赖包等信息
    ├── src                             项目源码目录    
    │   ├── main.js                         入口js文件
    │   ├── app.vue                         根组件
    │   ├── components                      公共组件目录
    │   │   └── title.vue
    │   ├── assets                          资源目录,这里的资源会被wabpack构建
    │   │   └── images
    │   │       └── logo.png
    │   ├── routes                          前端路由
    │   │   └── index.js
    │   ├── store                           应用级数据(state)
    │   │   └── index.js
    │   └── views                           页面目录
    │       ├── hello.vue
    │       └── notfound.vue
    ├── static                          纯静态资源,不会被wabpack构建。
    └── test                            测试文件目录(unit&e2e)
        └── unit                            单元测试
            ├── index.js                        入口脚本
            ├── karma.conf.js                   karma配置文件
            └── specs                           单测case目录
                └── Hello.spec.js

在上面的文件结构中,重点注意下面的内容:

  • index.html文件入口;
  • src放置组件和入口文件;
  • node_modules为依赖的模块;
  • config中配置了路径端口值等;
  • build中配置了webpack的基本配置、开发环境配置、生产环境配置等。

    Vue基础指令

    Vue内置了很多有用的指令,这些指令通常作用在HTML元素上以v-开头,可将指令视作特殊的HTML属性(attribute)。下面就一些常用的指令给大家简单介绍下。

    v-if指令

    条件判断指令,根据表达式值的真假来插入或删除元素,表达式返回一个布尔值。语法规则如下:
    v-if = "expression"
    
    例如有下面一个实例,
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>v-if指令</title>
        <meta charset="utf-8">
        <script src="https://unpkg.com/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <h1 v-if="yes">Yes</h1>
            <h1 v-if="no">No</h1>
            <h1 v-if="age > 25">Age: {
  {age}}</h1>
        </div>
        <script>
            var app = new Vue({
                el: '#app',
                data: {
                    yes: true,//值为真,插入元素
                    no: false,//值为假,不插入元素
                    age: 28
                }
            })
        </script>
    </body>
</html>

运行结果为:

yes 
age: 28

v-show指令

条件渲染指令,与v-if不同的是,无论v-show的值为true或false,元素都会存在于HTML代码中;而只有当v-if的值为true,元素才会存在于HTML代码中。v-show指令只是设置了元素CSS的style值,v-show指令的语法如下:

v-show = "expression"

例如:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>v-show指令</title>
        <meta charset="utf-8">
        <script src="https://unpkg.com/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <h1 v-show="yes">Yes</h1>
            <h1 v-show="no">No</h1>
            <h1 v-show="age > 25">Age: {
  {age}}</h1>
        </div>
        <script>
            var app = new Vue({
                el: '#app',
                data: {
                    yes: true,//值为真
                    no: false,//值为假
                    age: 28
                }
            })
        </script>
    </body>
</html>

这里写图片描述

v-else指令

可配合v-if或v-show使用,v-else指令必须紧邻v-if或v-show,否则该命令无法正常工作。v-else绑定的元素能否渲染在HTML中,取决于前面使用的是v-if还是v-show。若前面使用的是v-if,且v-if值为true,则v-else元素不会渲染;若前面使用的是v-show,且v-show值为true,则v-else元素仍会渲染到HTML。

v-for指令

循环指令,基于一个数组渲染一个列表,与JavaScript遍历类似。语法格式如下:

v-for = "item in items"

例如,在数组todos,依次遍历数组todos中的每个元素,将text部分显示。

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>v-for指令</title>
        <meta charset="utf-8">
        <script src="https://unpkg.com/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <ol>
                <li v-for="todo in todos">{
  {todo.text}}</li>
            </ol>
        </div>
        <script>
            var app = new Vue({
                el: '#app',
                data: {
                    todos: [
                        {text: 'learn Javascript'},
                        {text: 'learn Vue'},
                        {text: 'learn ...'}
                    ]
                }
            })
        </script>
    </body>
</html>

v-bind指令

v-bind用于给DOM绑定元素属性。例如:

v-bind:argument="expression"

其中,argument通常是HTML元素的特性,如:v-bind:class="expression"。
v-bind指令可以缩写为:冒号。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <script src="https://unpkg.com/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <span v-bind:title="message">Hover your mouse over me</span>
        </div>
        <script>
            var app = new Vue({
                el: '#app',
                data: {
                    message: 'you loaded this page on ' + new Date()
                }
            })
        </script>
    </body>
</html>

v-on指令

v-on用于监听DOM事件,语法与v-bind类似,如监听点击事件。

v-on:click="doSth"

其中,v-on指令可以缩写为@符号。如:@click="doSth"。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <script src="https://unpkg.com/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <p><input type="text" v-model="message"></p>
            <p>
                <button v-on:click="greet">Greet</button>
            </p>
            <p>
                <button v-on:click="say('hello vue')">Hello</button>
            </p>
        </div>
        <script>
            var app = new Vue({
                el: '#app',
                data: {
                    message: 'Greet to Vue'
                },
                methods: {
                    greet: function(){
                        alert(this.message);
                    },
                    say: function(msg){
                        alert(msg);
                    }
                }
            })
        </script>
    </body>
</html>

附:
vue.js 官网:https://vuejs.org/
vue.js 中文网: http://vuefe.cn/
vue-router 文档:http://router.vuejs.org/zh-cn/index.html/
vuex 文档:http://vuex.vuejs.org/
ES2015 入门教程:http://es6.ruanyifeng.com/
scss 文档:
http://sass-lang.com/documentation/file.SASS_REFERENCE.html
mocha 文档: http://mochajs.org/
express 中文官网:http://expressjs.com/zh-cn/

目录
相关文章
|
3月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
423 0
|
3月前
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
3月前
|
JavaScript 前端开发 开发者
Vue 自定义进度条组件封装及使用方法详解
这是一篇关于自定义进度条组件的使用指南和开发文档。文章详细介绍了如何在Vue项目中引入、注册并使用该组件,包括基础与高级示例。组件支持分段配置(如颜色、文本)、动画效果及超出进度提示等功能。同时提供了完整的代码实现,支持全局注册,并提出了优化建议,如主题支持、响应式设计等,帮助开发者更灵活地集成和定制进度条组件。资源链接已提供,适合前端开发者参考学习。
305 17
|
3月前
|
JavaScript 前端开发 UED
Vue 表情包输入组件实现代码及详细开发流程解析
这是一篇关于 Vue 表情包输入组件的使用方法与封装指南的文章。通过安装依赖、全局注册和局部使用,可以快速集成表情包功能到 Vue 项目中。文章还详细介绍了组件的封装实现、高级配置(如自定义表情列表、主题定制、动画效果和懒加载)以及完整集成示例。开发者可根据需求扩展功能,例如 GIF 搜索或自定义表情上传,提升用户体验。资源链接提供进一步学习材料。
158 1
|
3月前
|
存储 JavaScript 前端开发
如何高效实现 vue 文件批量下载及相关操作技巧
在Vue项目中,实现文件批量下载是常见需求。例如文档管理系统或图片库应用中,用户可能需要一次性下载多个文件。本文介绍了三种技术方案:1) 使用`file-saver`和`jszip`插件在前端打包文件为ZIP并下载;2) 借助后端接口完成文件压缩与传输;3) 使用`StreamSaver`解决大文件下载问题。同时,通过在线教育平台的实例详细说明了前后端的具体实现步骤,帮助开发者根据项目需求选择合适方案。
211 0
|
5月前
|
JavaScript
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
596 4
|
4月前
|
JavaScript 数据可视化 前端开发
基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
427 77
|
5月前
|
缓存 JavaScript 前端开发
Vue 基础语法介绍
Vue 基础语法介绍
|
3月前
|
监控 JavaScript 前端开发
Vue 文件批量下载组件封装完整使用方法及优化方案解析
本文详细介绍了批量下载功能的技术实现与组件封装方案。主要包括两种实现方式:**前端打包方案(基于file-saver和jszip)** 和 **后端打包方案**。前者通过前端直接将文件打包为ZIP下载,适合小文件场景;后者由后端生成ZIP文件流返回,适用于大文件或大量文件下载。同时,提供了可复用的Vue组件`BatchDownload`,支持进度条、失败提示等功能。此外,还扩展了下载进度监控和断点续传等高级功能,并针对跨域、性能优化及用户体验改进提出了建议。可根据实际需求选择合适方案并快速集成到项目中。
301 17
|
3月前
|
JavaScript 前端开发 UED
Vue 手风琴实现的三种常用方式及长尾关键词解析
手风琴效果是Vue开发中常见的交互组件,可节省页面空间、提升用户体验。本文介绍三种实现方式:1) 原生Vue结合数据绑定与CSS动画;2) 使用Element UI等组件库快速构建;3) 自定义指令操作DOM实现独特效果。每种方式适用于不同场景,可根据项目需求选择。示例包括产品特性页、后台菜单及FAQ展示,灵活满足多样需求。附代码示例与资源链接,助你高效实现手风琴功能。
133 10