当前位置:   article > 正文

百万前端之vue2.x最快上手_vant 2.x

vant 2.x

1.创建项目

vue create 项目名

2.认识vue初始文件夹

3.安装插件

  1. 移动端安装vant-ui pc端安装element-ui
  2. # Vue 2 项目,安装 Vant 2
  3. npm i vant@latest-v2 -S
  4. 安装axios
  5. npm install axios
  6. 安装vue-router
  7. npm install vue-router

4.全局注册插件

  1. import Vue from 'vue'
  2. import App from './App.vue'
  3. import router from './router' //路由
  4. import store from './store' //vuex数据管理
  5. import Vant from 'vant' //vant插件
  6. import 'vant/lib/index.css' //vant的css
  7. import network from './request/linkImg.js' // 全局图片链接存放
  8. import * as axios from './request/api.js' //axios
  9. Vue.config.productionTip = false
  10. Vue.use(Vant) //实例化vant
  11. global.network = network //全局图片链接
  12. Vue.prototype.$axios = axios //axios
  13. new Vue({
  14. router,
  15. store,
  16. render: h => h(App)
  17. }).$mount('#app')

5.封装axios

  1. import axios from 'axios' //导入axios
  2. // 创建axios实例
  3. const service = axios.create({
  4. baseURL:'https://', //全局调用axios时的api接口
  5. timeout: 20000 //请求超时时间 毫秒单位
  6. })
  7. // 请求拦截器
  8. service.interceptors.request.use(config =>{
  9. // 请求前获取data信息
  10. if (!config.data) {
  11. config.data = {} //定义config.data
  12. }
  13. //获取登录时存储在本地缓存的用户token数据
  14. let token = localStorage.getItem('token')
  15. if (token) {
  16. config.headers.token = token //全局携带token请求数据接口
  17. }
  18. return config
  19. })
  20. export default service
  21. import axios from 'axios'
  22. import {
  23. Notify
  24. } from 'vant'
  25. // 创建axios实例
  26. const service = axios.create({
  27. baseURL: 'https://o56p275976.imdo.co/api', // api的base_url
  28. // withCredentials: true, // 跨域请求时是否发送cookies
  29. timeout: 20000 // 请求超时设置
  30. })
  31. // 请求拦截器
  32. service.interceptors.request.use(config => {
  33. // 请求前做点什么?
  34. if (!config.data) {
  35. config.data = {}
  36. }
  37. let token = localStorage.getItem('token') // 全局请求自动携带token
  38. if (token) {
  39. config.headers.token = token
  40. }
  41. return config
  42. }, error => {
  43. // 处理请求错误
  44. // console.log(error) // 用于调试
  45. return Promise.reject(error)
  46. })
  47. // 响应拦截器
  48. service.interceptors.response.use(response => {
  49. if (response.data && response.data.errno === 203) {
  50. Notify.error('您没有登录或登录已失效,请重新登录!')
  51. }
  52. if (response.data && response.data.errno === 202) {
  53. Notify.error('您没有登录或登录已失效,请重新登录!')
  54. }
  55. return response
  56. }, error => {
  57. if (error.message.includes('timeout')) {
  58. Notify({
  59. type: 'danger',
  60. message: '请求超时,请稍后再试'
  61. });
  62. return Promise.reject(error)
  63. }
  64. Notify({
  65. type: 'danger',
  66. message: '网络连接失败,请稍后再试'
  67. });
  68. return Promise.reject(error)
  69. })
  70. export default service

6.封装api接口

  1. import axios from '@/request/axios' // 引入封装好的axios文件(拦截器)
  2. //所有页面的接口请求都在这里写, 示例:this.$axios.接口请求方法名().then(res=>{})
  3. // 接口请求 get的请求带参数用params,不用携带参数的请求就不用写
  4. export function webConfigure(params) {
  5. return request({
  6. url: 'index/get_site_config',
  7. method: 'get'
  8. params
  9. })
  10. }
  11. // post的请求带参数用data,不用携带参数的请求就不用写
  12. export function filesUpload(data) {
  13. return request({
  14. url: 'Ajax/upload',
  15. method: 'post',
  16. data
  17. })
  18. }

7.全局图片链接统一(需要的时候才写)

  1. //link.js文件
  2. //配置全局图片接口域名
  3. const network = 'https://o56p275976.imdo.co'
  4. //全局图片链接
  5. export default {
  6. imgUrl:network,
  7. }
  8. //页面中调用图片渲染链接
  9. //url: network.imgUrl
  10. // min.js中配置
  11. import network from './request/linkImg.js' // 全局图片链接存放
  12. global.network = network

8.页面请求接口示范

  1. //登录页面请求示例 登录成功后保存token到本地缓存
  2. //用户点击登录提交密码 userLogin()为接口请求方法名
  3. this.$axios.userLogin({
  4. username:this.username,
  5. password:this.password
  6. }).then(res=>{
  7. if (res.data.errno == 605){
  8. //登录失败 账号或密码错误
  9. this.$toast(res.data.errmsg)
  10. }else if(res.data.errno == 0){
  11. //登录成功保存用户token
  12. let token = res.data.data.token
  13. //保存token到本地缓存
  14. window.localStorage.setItem('token',token);
  15. // 登录成功后跳转到首页
  16. this.$router.push('/index')
  17. }
  18. })
  19. 到这里vue2的基本使用已经结束了。
  20. 下面是一些常用到的方法。

1.问号判断语句(三目运算符)

条件 == '1' ? 'true' : 'false'

问号前为判断条件,问号后为执行条件的结果

判断结果为真显示true

判断结果为假显示false

2.for循环set写入数组新字段

  1. for (let i = 0; i < this.collectionlist.length; i++) {
  2. this.$set(this.collectionlist[i],'ischeck',false)
  3. this.$set(this.collectionlist[i],'isClick',0)
  4. this.$set(this.collectionlist[i],'isClick1',1)
  5. this.$set(this.collectionlist[i],'clickNum',1)
  6. this.$set(this.collectionlist[i],'collect_number',1)
  7. }

3.for循环分页(全部页面读取)

  1. //分页总页数
  2. this.last_page = res.data.data.last_page
  3. //循环分页数量,循环次数为是否请求到了最后一页
  4. for(let p = 1;p < this.last_page;p++){
  5. //循环一次增加一页
  6. this.page++
  7. //请求下一页内容
  8. this.$axios.get_wrong_answer({res_id:this.$route.query.res_id,page:this.page}).then(res=>{
  9. //下一页数据的内容
  10. this.NewPaperList = res.data.data.data
  11. //循环拆解数组中的内容
  12. for (let i = 0;i < this.NewPaperList.length;i++){
  13. //将新数组的内容添加到上一页数据内容的末尾
  14. this.paperList.push(this.NewPaperList[i])
  15. }
  16. //错题总数
  17. this.tipsNumber = this.paperList.length
  18. }).catch(err=>{
  19. console.log(err)
  20. });
  21. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/76724
推荐阅读
相关标签
  

闽ICP备14008679号