1. js 基础
1. 函数的形式
Function声明
: 使用关键字function
声明函数,function foo(){...}
匿名函数
: 省略名称声明函数,function(){...}
箭头函数
:()=>console.log("hello")
,将它存储在变量中,像普通函数一样调用构造函数
: 使用带有new
关键字的Function
构造函数,new Function("arg1","arg2",...,"函数体")
,将它存储在变量中,像普通函数一样调用
2. 对象的形式
2. .vue
文件
Vue 自定义了一种后缀名名字为 .vue
文件, 其等于单独组件, 它将 html, js, css
文件整合成一个文件, 并与其中 template, script, style
三个分别依次对应.
.vue
文件本身浏览器不识别, 所以需要进行解析, 在 webpack 构建中, 需要安装 vue-loader
对 .vue
文件进行解析.
1 | <template> |
template
: 最外层必须是只有一个容器script
:export default {}
即导出这个组件, 使外部可以引用style
:lang
表明书写css
的样式类型,scoped
指这里写的 css 只适用于该组件
3. export/import
export
: 用于对外输出本模块变量的接口,一个文件就可以被理解为一个模块import
: 在一个模块中导入另一个含有export
接口的模块
注意:
export default
和export
都能导出一个模块里面的常量、函数、文件、模块等,但前者只能有一个- 通过
export
方式导出,在导入的时候需要加大括号({}
),export default
就不需要
1 | // export default |
4. 路由
1. 路由懒加载
路由懒加载指的是当路由被访问的时候才加载对应组件。
传统路由写法:
1 | import Home from "../views/Home.vue"; |
路由懒加载写法:
1 | Vue.use([ |
二级路由写法:
1 | Vue.use([ |
2. 路由重定向
1 | // 从 /a 重定向到 /b |
3. 使用
- 在 html 中,可以在 template 中设置
<router-link>
即可
1 | // 不带参数跳转 |
- 在 js 中,可以在函数中调用
this.$router.push()
即可
1 | // 不带参数跳转 |
5. Axios
Axios 是一个基于 promise 的网络请求库,可以用于浏览器和 node.js,使用前需要安装 npm install axios
。
1. 拦截器
为了组件之间代码复用,将接口解耦出来,形成 api文件直接引入,并在其中编写全局拦截器,方便进行一些公共操作,如 token 检查、登录鉴权等。
一般首先定义 request.js
工具类,在其中编写全局拦截器,并在各个 api 文件中进行调用。
实例:
1 | // 添加请求拦截器 |
6. Promise
主要用于异步计算,它将异步操作队列化,按照期望的顺序执行,返回符合预期的结果。
当通过 new 创建 Promise 实例时,需要传入一个回调函数,称为 executor
,它会被立刻执行,并传入两个回调参数 resolve
、reject
- 当调用
resolve
回调函数时,会执行 Promise 对象的then
方法传入的回调 - 当调用
reject
回调函数时,会执行 Promise 对象的catch
方法传入的回调
1 | let promise = new Promise((resolve, reject) => { |
Promise 是一个状态机,分为 3 种状态:
pending
: 进行状态,执行了executor
后,处于该状态fulfilled
: 成功状态,表示执行成功,在调用resolve()
后,状态更改为它,且无法再次更改rejected
: 拒绝状态,调用reject()
后,状态更改为它,且无法再次更改
7. 环境变量与模式
默认情况下,一个 Vue CLI 项目有三个模式:
development
模式用于开发环境production
模式用于生产环境(项目上线)test
模式用于测试
通过 process.env.NODE_ENV
的值表明所在环境,并且根据当前环境来进行不同配置。
在项目根目录创建一个名为 .env.xxx
的文件,那么在该文件里声明的变量就只会在 xxx 模式下被载入。