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

2023-11-17

1.创建项目

vue create 项目名

2.认识vue初始文件夹

3.安装插件

移动端安装vant-ui  pc端安装element-ui
  # Vue 2 项目,安装 Vant 2:
npm i vant@latest-v2 -S
安装axios
npm install axios
安装vue-router
npm install vue-router

4.全局注册插件

import Vue from 'vue'
import App from './App.vue'
import router from './router' //路由
import store from './store'  //vuex数据管理
import Vant from 'vant'  //vant插件
import 'vant/lib/index.css' //vant的css
import network from './request/linkImg.js' // 全局图片链接存放
import * as axios from './request/api.js'  //axios

Vue.config.productionTip = false
Vue.use(Vant) //实例化vant
global.network = network  //全局图片链接
Vue.prototype.$axios = axios //axios

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

5.封装axios

import axios from 'axios' //导入axios

// 创建axios实例
const service = axios.create({
baseURL:'https://',  //全局调用axios时的api接口
timeout: 20000 //请求超时时间  毫秒单位
})

// 请求拦截器
service.interceptors.request.use(config =>{
  // 请求前获取data信息
  if (!config.data) {
        config.data = {} //定义config.data
    }
  
  //获取登录时存储在本地缓存的用户token数据
  let token = localStorage.getItem('token')

  if (token) {
        config.headers.token = token //全局携带token请求数据接口
    }
  
  return config
})

export default service
import axios from 'axios'
import {
    Notify
} from 'vant'

// 创建axios实例
const service = axios.create({
    baseURL: 'https://o56p275976.imdo.co/api', // api的base_url
    // withCredentials: true, // 跨域请求时是否发送cookies
    timeout: 20000 // 请求超时设置
})

// 请求拦截器
service.interceptors.request.use(config => {
    // 请求前做点什么?
    if (!config.data) {
        config.data = {}
    }

    let token = localStorage.getItem('token') // 全局请求自动携带token
    if (token) {
        config.headers.token = token
    }
    return config
}, error => {
    // 处理请求错误
    // console.log(error) // 用于调试
    return Promise.reject(error)
})

// 响应拦截器
service.interceptors.response.use(response => {
    if (response.data && response.data.errno === 203) {
        Notify.error('您没有登录或登录已失效,请重新登录!')
    }
    if (response.data && response.data.errno === 202) {
        Notify.error('您没有登录或登录已失效,请重新登录!')
    }
    return response
}, error => {
    if (error.message.includes('timeout')) {
        Notify({
            type: 'danger',
            message: '请求超时,请稍后再试'
        });
        return Promise.reject(error)
    }
    Notify({
        type: 'danger',
        message: '网络连接失败,请稍后再试'
    });
    return Promise.reject(error)
})

export default service

6.封装api接口

import axios from '@/request/axios' // 引入封装好的axios文件(拦截器)


//所有页面的接口请求都在这里写, 示例:this.$axios.接口请求方法名().then(res=>{})
// 接口请求  get的请求带参数用params,不用携带参数的请求就不用写
export function webConfigure(params) {
  return request({
    url: 'index/get_site_config',
    method: 'get'
    params
  })
}

//  post的请求带参数用data,不用携带参数的请求就不用写
export function filesUpload(data) {
  return request({
    url: 'Ajax/upload',
    method: 'post',
    data
  })
}

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

//link.js文件
//配置全局图片接口域名
const network = 'https://o56p275976.imdo.co'
//全局图片链接
export default {
    imgUrl:network,
}

//页面中调用图片渲染链接
//url: network.imgUrl


// min.js中配置
import network from './request/linkImg.js' // 全局图片链接存放
global.network = network

8.页面请求接口示范

//登录页面请求示例   登录成功后保存token到本地缓存

//用户点击登录提交密码  userLogin()为接口请求方法名
      this.$axios.userLogin({
        username:this.username,
        password:this.password
      }).then(res=>{
       if (res.data.errno == 605){
         //登录失败  账号或密码错误
         this.$toast(res.data.errmsg)
       }else if(res.data.errno == 0){
         //登录成功保存用户token
         let token = res.data.data.token
         //保存token到本地缓存
         window.localStorage.setItem('token',token);
        // 登录成功后跳转到首页
        this.$router.push('/index')
       }
      })

到这里vue2的基本使用已经结束了。
下面是一些常用到的方法。

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

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

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

判断结果为真显示true

判断结果为假显示false

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

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

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

                        //分页总页数
                        this.last_page =  res.data.data.last_page
                        //循环分页数量,循环次数为是否请求到了最后一页
                        for(let p = 1;p < this.last_page;p++){
                            //循环一次增加一页
                            this.page++
                            //请求下一页内容
                            this.$axios.get_wrong_answer({res_id:this.$route.query.res_id,page:this.page}).then(res=>{
                                //下一页数据的内容
                                this.NewPaperList = res.data.data.data
                                //循环拆解数组中的内容
                                for (let i = 0;i < this.NewPaperList.length;i++){
                                    //将新数组的内容添加到上一页数据内容的末尾
                                    this.paperList.push(this.NewPaperList[i])
                                }
                                //错题总数
                                this.tipsNumber = this.paperList.length
                            }).catch(err=>{
                                console.log(err)
                            });
                        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

百万前端之vue2.x最快上手 的相关文章

随机推荐

  • 【LeetCode题解】1475、商品折扣后的最终价格

    题目 给你一个数组 prices 其中 prices i 是商店里第 i 件商品的价格 商店里正在进行促销活动 如果你要买第 i 件商品 那么你可以得到与 prices j 相等的折扣 其中 j 是满足 j gt i 且 prices j
  • CSS动画:Transition与Animation

    本文总结CSS3中两个用来做动画的属性 一个是transition 另一个是animation 差异比较 CSS3 差异 transition 在给定的持续时间内平滑地更改属性值 从一个值到另一个值 也就是只需要指定开始与结束的参数 参数改
  • 让汽车的全景环视更智能更安全!

    随着现代汽车安全技术的进步 我们看到诸如全景环视等先进驾驶辅助 ADAS 技术成为现代汽车的新标准 本演示展示了如何通过精确的实时反射和AI来检测障碍 以提升全景环视系统的性能 让汽车驾驶更安全 尤其是 当全景环视系统内嵌Imaginati
  • cesium-添加点并且可以编辑

    完整代码
  • 05_Numpy任意行&列的删除方法(numpy.delete)

    05 Numpy任意行 列的删除方法 numpy delete 函数Numpy delete 可以删除ndarray数组中任意的行或者列 指定要删除的轴 维度 和要删除的位置 行号 列号 也可以通过切片或列表选择多个行或者列的编号 对以下的
  • 【Unity Shaders】抖音变身漫画1

    先来看一下手机拍出来的效果 我们发现有一张人像变成了卡通漫画脸 其它的只是做了一些图像处理 你可以再拍几张看一下 会发现千篇一律的大眼 小嘴有没有 你想的没错 这个是AI换脸技术 抖音特效里有很多了 把这个漫画脸再加上对图像的漫画处理 最后
  • 解读CUDA Compiler Driver NVCC - Ch.5

    前言 前面几篇文章 我们了解了NVCC的作用 nvcc编译的two stage 每个stage做了什么 怎么去选择虚拟架构和真实架构 JIT编译的原理 好处和弊端以及解决方案 本文我们将了解几个实际的nvcc编译命令 Base Notati
  • el-select中多选回显数据后没法重新选择和更改

    我用element select 多选回显的时候 回显正常 不能点击清除 不能选择改变数据 然后去搜了这篇文章文章链接 博主解释要在select标签上加一个强制渲染 如下图
  • Docker的网络模式

    目录 Docker的四种网络模式 1 Bridge 网络模式 类似于VMware的NAT模式 Bridge 网络模式介绍 bridge模式示意图 2 Host 网络模式 Host 网络模式介绍 Host模式示意图 3 Container 网
  • 【Redis】集合Set和底层实现

    文章目录 Redis 集合 Set Set简介 常用命令 应用场景 共同关注实例 整数集合 整数集合介绍 整数集合的升级 哈希表 哈希表的原理和实现 Redis中的哈希表 rehash 渐进式rehash Redis 集合 Set Set简
  • 如何用xp系统做服务器,xp系统如何做远程服务器呢

    xp系统如何做远程服务器呢 内容精选 换一换 网站的访问与云服务器的网络配置 端口通信 防火墙配置 安全组配置等多个环节相关联 任意一个环节出现问题 都会导致网站无法访问 本节操作介绍网站无法访问时的排查思路 网站无法访问怎么办 如果打开网
  • 14-5_Qt 5.9 C++开发指南_基于HTTP 协议的网络应用程序

    文章目录 1 实现高层网络操作的类 2 基于HTTP协议的网络文件下载 3 源码 3 1 可是化UI设计 3 2 mainwindow h 3 3 mainwindow cpp 1 实现高层网络操作的类 Qt 网络模块提供一些类实现 OSI
  • Synchronized的锁升级过程

    Synchronized的锁升级过程 synchronized锁升级过程 在synchronized中引入了偏向锁 轻量级锁 重量级锁之后 当前具体使用的是synchronzed中的那种类型锁 是根据线程竞争激烈程度来决定的 偏向锁 在锁对
  • vue使用luckysheet,引入图表chartmix,实现打印按钮功能

    1 下载Luckysheet源码 下载地址 https github com dream num Luckysheet 按照下载地址提示 npm run build 打包源码 生成dist文件夹 2 引入luckysheet的js文件和cs
  • TinyWebServer

    遇到的问题 1 Reactor和Proactor 当下开源软件能做到网络高性能的原因就是 I O 多路复用吗 是的 基本是基于 I O 多路复用 用过 I O 多路复用接口写网络程序的同学 肯定知道是面向过程的方式写代码的 这样的开发的效率
  • 数据可视化pyecharts绘制饼状图和环形图

    艰难做了新的作业练习 记录一下 from pyecharts import options as opts from pyecharts charts import Pie Page from pyecharts faker import
  • FC基本定义

    FC基本定义 虚拟化的软件有很多 华为开发的服务器虚拟化软件Fusioncompute CAN compute node agent 提供虚拟化功能 版本6 3之前是基于开源的xen开发的 6 3之后是基于开源的Kvm开发的 1 CAN V
  • 10月08日星期二 恒指/美原油/美黄金 走势分析

    财经早餐 2019年10月08日星期二 重点关注的财经数据与事件 07 50 日本8月贸易帐 09 45 中国9月财新服务业PMI 13 45 瑞士9月季调后失业率 14 00 德国8月季调后工业产出月率 14 45 法国8月贸易帐 18
  • Linux下创建所线程

    一 线程 线程是轻量级的进程 LWP light weight process 在 Linux 环境下线程的本质仍是进程 在计算机上运行的程序是一组指令及指令参数的组合 指令按照既定的逻辑控制计算机运行 操作系统会以进程为单位 分配系统资源
  • 百万前端之vue2.x最快上手

    1 创建项目 vue create 项目名 2 认识vue初始文件夹 3 安装插件 移动端安装vant ui pc端安装element ui Vue 2 项目 安装 Vant 2 npm i vant latest v2 S 安装axios