Vue2 and Vue3教程-2024-速通

115 阅读1分钟

Vue-CLI 脚手架创建项目

打开cmd

安装vue cli 脚手架 npm install -给@vue/cli

查看vue 版本 vue --version

创建项目 vue create 项目名称

Vue2

模板语法

image.png

image.png

image.png

image.png

条件渲染

image.png

image.png

image.png

image.png

列表渲染

image.png

image.png

事件处理

image.png

image.png

表单输入绑定

image.png

image.png image.png

组件基础

image.png

image.png

Prop组件交互

image.png

image.png

image.png

image.png

自定义事件的组件交互(反向传递)

image.png

image.png

image.png

组件的生命周期

image.png

image.png

image.png

Vue引入第三方

image.png

image.png

Axios网络请求

image.png

image.png

image.png

image.png

Axios网络请求封装

  • src 下面创建一个utils目录,里面创建一个 https.js 的文件
  • 创建一个 api 目录,里面创建index.js 和path.js

参考文档 www.kancloud.cn/yunye/axios…

https.js如下

import axios from "axios";
import * as querystring from "querystring";

//网络请求的配置
const instance = axios.create({
    timeout: 5000//超时时间
})
//错误信息配置
const errorHandle = (status, info) => {
    switch (status) {
        case 400:
            console.log('错误请求')
            break;
        case 401:
            console.log('未授权,请重新登录')
            break;
        case 403:
            console.log('拒绝访问')
            break;
        case 404:
            console.log('请求错误,未找到该资源')
            break;
        case 500:
            console.log('服务器端出错')
            break;
            case 502:
            console.log('网关错误')
            break;
        default:
            console.log('其他错误信息:'+info)
            break;
    }
}




//请求拦截器
instance.interceptors.request.use(
    config => {
        if (config.method === 'post') {
            config.data = querystring.stringify(config.data)
        }
        return config;
    },
    error => {
        return Promise.reject(error);
    }
)

//响应拦截器
instance.interceptors.response.use(
    response => {
        return response.status===200 ? Promise.resolve(response):Promise.reject(response);
    },
    error => {
        const {response} = error;
        if (response) {
            errorHandle(response.status, response.info);
            return Promise.reject(error);
        } else {
            console.log('请求超时,请检查网络是否正常')
        }
    }
)

//参考文档 https://www.kancloud.cn/yunye/axios/234845
export default instance;

path.js

const base={
    baseUrl:"http://localhost:8080",//请求的基础路径
    //请求的路径
    loginUrl:"/login",//
    registerUrl:"/register",
    
}
export default base

index.js

import axios from "../utlis/http";
import path from "./path";

const api = {
    login(){
        return axios.get(path.baseUrl+path.loginUrl)
    }
}
export default api

使用api

mounted() {
  api.login().then(res => {
    console.log(res.data);
  })
}

网络请求的跨域解决

image.png

image.png

  • url-请求地址的,请求协议,域名,端口

Vue引入路由配置

image.png

image.png

Vue路由携带参数

image.png

嵌套路由配置

image.png

image.png

image.png

Vue状态管理-VueX

image.png

image.png

image.png

VueX核心

image.png

image.png

image.png

image.png

image.png

image.png

Vue3新特性

image.png

image.png

image.png

image.png

image.png image.png

image.png image.png