vue-cli入门(二)——项目结构

本文详细介绍了Vue CLI项目的文件结构及其功能,包括webpack配置、项目配置、依赖包管理及核心源码等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在上一篇项目搭建文章中,我们已经下载安装了node环境以及vue-cli,并且已经成功构建了一个vue-cli项目,那么接下来,我们来梳理一下vue-cli项目的结构。

总体框架

一个vue-cli的项目结构如下,其中src文件夹是需要掌握的,所以本文也重点讲解其中的文件,至于其他相关文件,了解一下即可。

图片描述

文件结构细分

1.build——[webpack配置]

build文件主要是webpack的配置,主要启动文件是dev-server.js,当我们输入npm run dev首先启动的就是dev-server.js,它会去检查node及npm版本,加载配置文件,启动服务。

图片描述

2.config——[vue项目配置]

config文件主要是项目相关配置,我们常用的就是当端口冲突时配置监听端口,打包输出路径及命名等

图片描述

3.node_modules——[依赖包]

node_modules里面是项目依赖包,其中包括很多基础依赖,自己也可以根据需要安装其他依赖。安装方法为打开cmd,进入项目目录,输入npm install [依赖包名称],回车。

在两种情况下我们会自己去安装依赖:

(1)项目运行缺少该依赖包:例如项目加载外部css会用到的css-loader,路由跳转vue-loader等(安装方法示例:npm install css-loader)

(2)安装插件:如vux(基于WEUI的移动端组件库),vue-swiper(轮播插件)

注:有时会安装指定依赖版本,需在依赖包名称后加上版本号信息,如安装11.1.4版本的vue-loader,输入npm install vue-loader@11.1.4

4.src——[项目核心文件]

4.1 index.html——[主页]

index.html如其他html一样,但一般只定义一个空的根节点,在main.js里面定义的实例将挂载在根节点下,内容都通过vue组件来填充

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>vuedemo</title>
  </head>
  <body>
      <!-- 定义的vue实例将挂载在#app节点下 -->
    <div id="app"></div>
  </body>
</html>

4.2 App.vue——[根组件]

一个vue页面通常由三部分组成:模板(template)、js(script)、样式(style)

<!-- 模板 -->
<template>
  <div id="app">
    <img src="./assets/logo.png">
    <router-view></router-view>
  </div>
</template>

<!-- script -->
<script>
export default {
  name: 'app'
}
</script>

<!-- 样式 -->
<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

【template】

其中模板只能包含一个父节点,也就是说顶层的div只能有一个(例如下图,父节点为#app的div,其没有兄弟节点)

<router-view></router-view>是子路由视图,后面的路由页面都显示在此处

打一个比喻吧,<router-view>类似于一个插槽,跳转某个路由时,该路由下的页面就插在这个插槽中渲染显示

【script】

vue通常用es6来写,用export default导出,其下面可以包含数据data,生命周期(mounted等),方法(methods)等,具体语法请看vue.js文档,在后面我也会通过例子来说明。

【style】

样式通过style标签<style></style>包裹,默认是影响全局的,如需定义作用域只在该组件下起作用,需在标签上加scoped,<style scoped></style>

如要引入外部css文件,首先需给项目安装css-loader依赖包,打开cmd,进入项目目录,输入npm install css-loader,回车。安装完成后,就可以在style标签下import所需的css文件,例如:

<style>
    import './assets/css/public.css'
</style>

这样,我们就可以把style下的样式封装起来,写到css文件夹,再引入到页面使用,整个vue页面也看上去更简洁。

4.3 main.js——[入口文件]

main.js主要是引入vue框架,根组件及路由设置,并且定义vue实例,下面的

components:{App}就是引入的根组件App.vue

后期还可以引入插件,当然首先得安装插件。

/*引入vue框架*/
import Vue from 'vue'
/*引入根组件*/
import App from './App'
/*引入路由设置*/
import router from './router'

/*关闭生产模式下给出的提示*/ 
Vue.config.productionTip = false

/*定义实例*/ 
new Vue({
  el: '#app',
  router,
  template: '<App/>',
  components: { App }
})

4.4 router——[路由配置]

router文件夹下,有一个index.js,即为路由配置文件

/*引入vue框架*/
import Vue from 'vue'
/*引入路由依赖*/
import Router from 'vue-router'
/*引入页面组件,命名为Hello*/ 
import Hello from '@/components/Hello'

/*使用路由依赖*/ 
Vue.use(Router)

/*定义路由*/ 
export default new Router({
  routes: [
    {
      path: '/',
      name: 'Hello',
      component: Hello
    }
  ]
})

这里定义了路径为'/'的路由,该路由对应的页面是Hello组件,所以当我们在浏览器url访问http://localhost:8080/#/时就渲染的Hello组件

类似的,我们可以设置多个路由,‘/index’,'/list'之类的,当然首先得引入该组件,再为该组件设置路由。

### Vue CLI 和 `vue.global.js` 的区别及用途 #### Vue CLI Vue CLI 是官方提供的命令行工具,用于快速搭建大型单页应用(SPA)[^1]。它提供了丰富的功能来简化开发流程: - **脚手架工具**:通过交互式的方式生成项目结构- **插件系统**:支持多种构建工具和库的集成,如 Babel、TypeScript、ESLint 等。 - **内置服务器**:提供热重载、代理等功能,方便本地调试。 使用 Vue CLI 创建的应用程序通常会有一个复杂的配置体系,默认情况下隐藏了许多细节以提高易用性。对于大多数开发者而言,这足以满足日常需求;但对于希望深入定制的同学来说,则可以通过修改配置文件(`vue.config.js`)来自定义行为。 ```bash npm install -g @vue/cli vue create my-project cd my-project npm run serve ``` #### vue.global.js 相比之下,`vue.global.js` 并不是标准术语或官方组件,在常规上下文中可能指代的是引入全局 Vue 实例的方法之一。更常见的情况是指向 UMD 版本 (`umd`) 或者 CDN 上托管的一个特定版本的 Vue 库文件,该文件允许直接在 HTML 页面中通过 `<script>` 标签加载,并挂载至全局作用域(window 对象),从而可以在不依赖模块打包器的情况下立即开始编码[^2]。 这种方式适合小型实验性质的小型应用程序或者学习目的,因为它不需要额外安装 Node.js 及其相关环境即可工作。然而,当涉及到复杂的状态管理、路由导航以及与其他现代前端框架/库协作时,这种方法就显得力不从心了。 ```html <!-- 引入 Vue --> <script src="https://cdn.jsdelivr.net/npm/vue@next"></script> <script type="text/javascript"> new Vue({ el: '#app', data () { return { message: 'Hello Vue!' } } }) </script> <div id="app">{{message}}</div> ``` 综上所述,两者各有侧重——Vue CLI 更加面向生产级应用开发场景下的效率提升与灵活性保障;而采用类似 `vue.global.js` 方式的简单引入则更适合初学者入门阶段或是某些特殊场合下的轻量级解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值