vue2项目:快速创建vue页面模板+aixos和Message的挂载+async与await的异步操作

简介: vue2项目:快速创建vue页面模板+aixos和Message的挂载+async与await的异步操作

今天继续写一下关于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变量。

下面是解构赋值的一些特点和语法:

  1. 解构赋值可以用于数组和对象。在这个例子中,使用的是对象解构赋值。
  2. 解构赋值通过{}中指定的模式来匹配对象的结构,并将对应的属性值赋给变量。
  3. 变量的名称可以与属性名不同,通过使用冒号:来指定新的变量名。在这个例子中,属性名为data,而变量名为res
  4. 解构赋值可以嵌套使用,以便提取更深层次的属性值。

在这段代码中,解构赋值的目的是从HTTP响应中获取res.data的值,并将其赋给res变量。然后根据res.meta.status的值进行条件判断和后续操作。

请注意,这里的解构赋值是通过const { data: res }来实现的,其中const是用于声明常量的关键字。这表示res是一个常量,一旦赋值就不能再修改它的值。


相关文章
|
1天前
|
资源调度 JavaScript 前端开发
创建vue3项目步骤以及安装第三方插件步骤【保姆级教程】
这是一篇关于创建Vue项目的详细指南,涵盖从环境搭建到项目部署的全过程。
12 1
|
2月前
|
JavaScript 前端开发 API
Vue 3 中 v-model 与 Vue 2 中 v-model 的区别是什么?
总的来说,Vue 3 中的 `v-model` 在灵活性、与组合式 API 的结合、对自定义组件的支持等方面都有了明显的提升和改进,使其更适应现代前端开发的需求和趋势。但需要注意的是,在迁移过程中可能需要对一些代码进行调整和适配。
143 60
|
2月前
|
数据采集 监控 JavaScript
在 Vue 项目中使用预渲染技术
【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
|
2月前
|
JavaScript 前端开发 API
从Vue 2到Vue 3的演进
从Vue 2到Vue 3的演进
86 17
|
2月前
|
JavaScript 前端开发 API
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
101 17
|
2月前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
2月前
Vue3 项目的 setup 函数
【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
|
2月前
|
JavaScript 测试技术 UED
解决 Vue 项目中 Tree shaking 无法去除某些模块
【10月更文挑战第23天】解决 Vue 项目中 Tree shaking 无法去除某些模块的问题需要综合考虑多种因素,通过仔细分析、排查和优化,逐步提高 Tree shaking 的效果,为项目带来更好的性能和用户体验。同时,持续关注和学习相关技术的发展,不断探索新的解决方案,以适应不断变化的项目需求。
|
8月前
|
JavaScript API
【vue实战项目】通用管理系统:api封装、404页
【vue实战项目】通用管理系统:api封装、404页
85 3
|
8月前
|
人工智能 JavaScript 前端开发
毕设项目-基于Springboot和Vue实现蛋糕商城系统(三)
毕设项目-基于Springboot和Vue实现蛋糕商城系统