(02)Vue 实战准备——② 项目框架源码解析 | Vue.js 项目实战: 移动端“旅游网站”开发
转载请注明出处,未经同意,不可修改文章内容。
🔥🔥🔥“前端一万小时”两大明星专栏——“从零基础到轻松就业”、“前端面试刷题”,已于本月大改版,合二为一,干货满满,欢迎点击公众号菜单栏各模块了解。
涉及面试题:
请说出 Vue CLI 项目中 src 目录每个文件夹和文件的用法?
编号:[vue_02]
1 结构解析
在编辑器中打开项目 qdywxs-travel
:
1.1 外层“文件”说明
-
.babelrc
——这是针对 babel 编译的规范说明,不用管。 -
.editorconfig
——帮助我们配置了编辑器里的语法(如,配置了“点击 tab”是两个空格的缩进:indent_size = 2
),我们可以自己再添加一些东西,来统一编辑器的一些自动化、格式化代码。 -
eslintignore
——这里边包含的文件是不会受.eslintrc.js
检测工具检测的。即,这些文件即使写的不标准,也不会进行语法上的提示。 -
.eslintrc.js
——这里配置了一些代码的规范。即,我们写代码时,只有按照这个规范来写,它才不会做错误的提示。 -
.gitignore
——当我们使用 git 的时候,我们希望将代码上传到线上,但有些特殊的文件我并不希望将其上传到线上去。此时,我们就可以将这些文件配置在.gitignore
里面。 -
.postcssrc.js
——针对 Postcss 的一些配置规则。 -
package-lock.json
——这是 package 的“锁文件”。它可以帮我们确定我们安装的“第三方包”的具体版本,以保持团队编程的统一性。 -
package.json
——这里边记录有很多“依赖包”。在开发项目的时候,我们会有一些“第三方模块”的依赖,而这些“依赖”都记录在这里。 -
README.md
——这是项目说明文件。
1.2 各“文件夹”说明
-
build
——这个文件夹里边放置的是一些 Webpack 配置文件,这一块可以不动。 -
config
——这里边是针对“开发环境”和“线上环境”的一些配置文件,这一块也可以不动。 -
node_modules
——这里边放置的是我们项目安装的“依赖包”。 -
static
——此目录下放置的是一些静态的资源,如静态图片、后续要 mock 的 JSON 数据等。 -
index.html
——项目默认的首页模板文件。 -
src
——🏆这是我们的“源代码”所放置的目录。也是我们写“工程化”代码的时候,主要编写的地方。我们打开这个目录:- 下边有一个
main.js
文件,这个文件是我们整个项目的“入口文件”;
- 下边有一个
// ❗️请按编号顺序阅读注释!
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App' /* 3️⃣-②:这个“组件”是从当前目录下的 App.vue 引入的一个组件; */
import router from './router'
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({ // 1️⃣在这里我们创建了一个 Vue 实例;
el: '#app', // 2️⃣我们让它的“挂载点”在 id 为 app 的节点上;
router,
components: { App }, /*
3️⃣
3️⃣-①:注册了一个“局部组件”;
*/
template: '<App/>' // 4️⃣它的“模板”就是 App 这个组件的内容;
})
// 5️⃣总结:这个 Vue 实例所展示出来的内容,就是注册进来的(步骤3️⃣-①)这个 App 组件。
-
接着,我们打开
App.vue
,其代码分为 3 个部分: -
这和我们之前看到的 Vue 组件完全不一样。这是因为,在这个“脚手架”工具里边,它给我们提供了一套新的“编码语法”,这种语法叫做“单文件组件”——即,仅在 1 个
.vue
文件里边,它就包含了一个组件必须的所有内容。 -
我们把
App.vue
里边多余的代码删除掉,并做一些改动。返回页面查看,发现页面也跟着变了(💡因为,如上文所述,主入口“根组件”里边显示的内容就是 App 组件,App 组件里边的内容怎么变,页面也会跟着怎么变):
<template>
<div id="app">
<!-- ❗️去除 img 标签。 -->
<!-- <img src="./assets/logo.png"> -->
<router-view/>
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
<style>
</style>
-
src
目录下还有几个文件夹,它们分别是指:
assets // 放置的是我们项目里边用到的诸如“图片”之类的资源;
components // 放置的是我们项目里边要用到的“小组件”;
router // 我们把项目的所有“路由”,都放在这个目录下的 index.js 里边。
2 使用“脚手架”工具给我们带来的好处
-
在编写代码的过程中,我们不必再局限于 ES5 的语法,可以大胆地使用 ES6 的语法。最终,“脚手架”会自动地帮我们把 ES6 的代码打包成 ES5 的代码,然后进行浏览器上的运行;
-
在我们写“组件”的时候,我们完全换了一种编码的方式进行“组件”的编写。以前,我们会把 HTML 和各种逻辑耦合在一起进行编码。而现在,我们有了“单文件组件”的编码形式:一个“组件”就是以一个
.vue
后缀的文件定义的,在这个文件里包含了“组件”所有的内容(模板、逻辑、样式)。这样就做了一个非常好的“组件”的封装。
祝好,qdywxs ♥ you!
转载自:https://juejin.cn/post/7374631918112342054