今天继续写一下关于vue项目中所写的东西
1.vue页面的模板快速创建
新建一个模板之后输入vue然后点击回车就可以直接出现模板了
这种快捷键创建模板怎么弄?
你只需要在vscode上安装一个插件就好,我的是vue2项目安装了一个vue2 snippets
2. aixos和Message的挂载
在写vue项目的时候经常要发起axios请求还有就是那个提示框请求失败和成功的信息框
所以可以这样写一层axios封装
1. //在main.js中 2. //导入网络请求的包 3. import axios from 'axios' 4. //配置请求的根路径,这样子就都有网址的请求路径就都会加这一个固定的前缀减少输入 5. axios.defaults.baseURL='http://网络地址:端口号/后缀' 6. // 把axios这个包挂载到原型对象上 7. // 添加到vue.prototype.$http后,可以在每一个组件上通过 8. // this.$http获取axios 不必每个页面都import axios $http是自定义的属性名,可以随便起 9. Vue.prototype.$http=axios
this.$http.get('路径' + 参数)
消息提示框是用的element ui
所以就是这样子
1. import Message from 'element-ui' 2. //挂载消息提示组件到原型中,这样子就方便用this调用 3. Vue.prototype.$message=Message
然后在页面里面调用的时候就是这样子写
1. this.$message.error('失败提示文字') 2. 3. this.$message.success('成功提示文字')
3.async与await的异步操作
首先介绍一下这个是什么
async和await是JavaScript中处理异步操作的语法糖,它们使得异步代码的编写和阅读更加简洁和直观。
async函数:async函数是一个特殊类型的函数,它内部包含异步操作。通过在函数声明前加上async关键字,函数就变成了一个async函数。在async函数中,可以使用await关键字来暂停函数的执行,等待异步操作的结果。
await表达式:await只能在async函数内部使用。它用于暂停async函数的执行,等待一个Promise对象的解析结果。当遇到await表达式时,函数会暂停执行,直到Promise对象被解析为成功状态并返回结果,然后将该结果赋给变量。这使得在异步操作返回结果之前,代码可以按照同步的方式编写。
这里就额外扩展一下异步编程:
1. JavaScript 中的异步机制可以分为以下几种: 2. 回调函数 的方式,使用回调函数的方式有一个缺点是,多个回调函 3. 数嵌套的时候会造成回调函数地狱,上下两层的回调函数间的代码耦 4. 合度太高,不利于代码的可维护。 5. Promise 的方式,使用 Promise 的方式可以将嵌套的回调函数作为 6. 链式调用。但是使用这种方法,有时会造成多个 then 的链式调用, 7. 可能会造成代码的语义不够明确。 8. generator 的方式,它可以在函数的执行过程中,将函数的执行权转 9. 移出去,在函数外部还可以将执行权转移回来。当遇到异步函数执行 10. 的时候,将函数执行权转移出去,当异步函数执行完毕时再将执行权 11. 给转移回来。因此在 generator 内部对于异步操作的方式,可以以 12. 同步的顺序来书写。使用这种方式需要考虑的问题是何时将函数的控 13. 制权转移回来,因此需要有一个自动执行 generator 的机制,比如 14. 说 co 模块等方式来实现 generator 的自动执行。 15. async 函数 的方式,async 函数是 generator 和 promise 实现的 16. 一个自动执行的语法糖,它内部自带执行器,当函数内部执行到一个 17. await 语句的时候,如果语句返回一个 promise 对象,那么函数将 18. 会等待 promise 对象的状态变为 resolve 后再继续向下执行。因此 19. 可以将异步逻辑,转化为同步的顺序来书写,并且这个函数可以自动 20. 执行
我个人觉得async函数是用的最舒服的
接下来就是展示用法结合aixos和message
1. // 展示编辑用户的对话框 2. async showEditDialog(id) { 3. // console.log(id); 4. const { data: res } = await this.$http.get('users/' + id) 5. if (res.meta.status !== 200) 6. return this.$message.error('查询用户信息失败!') 7. this.editForm = res.data 8. this.editDialogVisible = true 9. },
这里是一个展示编辑用户对话框的请求
async的操作会返回一个promise所以需要用到const { data: res }去解构赋值
然后验证服务器返回状态码是否合格不然就弹出错误消息提示
然后就将数据赋值到本页面的data return的一个值进行保存然后去进行使用
再显示对话框
4.额外再说解构赋值的意思
解构赋值是一种从数组或对象中提取值并将其赋给变量的语法。在这个例子中,使用了对象解构赋值,通过{ data: res }
的语法,将响应对象的data
属性的值赋给res
变量。
下面是解构赋值的一些特点和语法:
- 解构赋值可以用于数组和对象。在这个例子中,使用的是对象解构赋值。
- 解构赋值通过
{}
中指定的模式来匹配对象的结构,并将对应的属性值赋给变量。 - 变量的名称可以与属性名不同,通过使用冒号
:
来指定新的变量名。在这个例子中,属性名为data
,而变量名为res
。 - 解构赋值可以嵌套使用,以便提取更深层次的属性值。
在这段代码中,解构赋值的目的是从HTTP响应中获取res.data
的值,并将其赋给res
变量。然后根据res.meta.status
的值进行条件判断和后续操作。
请注意,这里的解构赋值是通过const { data: res }
来实现的,其中const
是用于声明常量的关键字。这表示res
是一个常量,一旦赋值就不能再修改它的值。