Vue2快速入门(三)前端项目架构搭建、Axios、Vue-Router

news2024/12/26 10:59:18

文章目录

  • VueCli 4.3搭建前端项目架构
    • 创建vue项目
    • 前端项目目录结构
    • 添加axios
    • 添加cube-ui依赖
    • 创建新目录
  • http客户端Axios
    • 什么是Axios?
    • GET请求方式
    • POST请求方式
    • Axios封装通用后端请求API模块
  • Vue-Router开发前端项目路由
    • 什么是vue-router?
    • 配置项目路由

VueCli 4.3搭建前端项目架构

创建vue项目

vue create project_front

选项选择如图
**加粗样式**

前端项目目录结构

src->assets文件:资源文件,静态资源文件
src->components文件:组件
src->router文件:路由,配置文件如何跳转
src->store文件:vuex,状态管理
src->view文件:页面
package.json文件:类似maven的pom.xml文件,存放依赖
App.vue文件:是最核心的文件,渲染的主要文件
main.js文件:把对应的逻辑渲染到App.vue文件中

添加axios

cnpm install axios --save-dev

表示将这个包名及对应的版本添加到 package.json的devDependencies

添加cube-ui依赖

输入y进⾏安装

vue add cube-ui

安装后可以在package.json中看见刚刚安装的axios和cube-ui
在这里插入图片描述

创建新目录

创建新目录:api/router/views
views里面建组件的文件名:Home、CourseDetail、Register、Login、Order、Pay、Personal(根据具体项目具体情况建立文件夹和文件)

在这里插入图片描述

http客户端Axios

什么是Axios?

基于promise用于浏览器和node.js的http客户端:支持浏览器和node.js、⽀持Promise API、支持拦截请求和响应、支持转换请求和响应数据、JSON数据的自动转换、客户端⽀持以防止XSRF
文档地址

GET请求方式

// 为给定 ID 的 user 创建请求
axios.get('/user?ID=12345')
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

// 上面的请求也可以这样做
axios.get('/user', {
    params: {
      ID: 12345
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

POST请求方式

axios.post('/user', {
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

Axios封装通用后端请求API模块

新建、配置文件request.js(名称可自定义)

import axios from "axios"

//请求基础服务
const service = axios.create({
    //url = base url + request url
    baseURL:"http://127.0.0.1:8080",
    //配置请求超时时间
    timeout:5000
})
export default service

封装请求后端api接口
新建文件夹src->api,并在此路径新建文件getData.js
引入request:import axios from '../request'

import service from '../request'

//注册接口
export const registerApi = (phone, pwd, name) => axios.post("/api/v1/pri/user/register", {
    "phone": phone,
    "pwd": pwd,
    "name": name
})

//登录接口
export const loginApi = (phone, pwd) => axios.post("/api/v1/pri/user/login", {
    phone,
    pwd
})

//轮播图接⼝
export const getBanner = () => axios.get("/api/v1/pub/video/banner")

//视频列表接⼝
export const getVideoList = () => axios.get("/api/v1/pub/video/list")

//视频详情
export const getVideoDetail = (vid) => axios.get("/api/v1/pub/video/find_detail_by_id", {
    params: {
        video_id: vid
    }
})

//下单接⼝
export const saveOrder = (token, vid) => axios.post("/api/v1/pri/order/save", {
    video_id: vid
}, {
    headers: {
        "token": token
    }
})

//订单列表
export const getOrderList = (token) => axios.get("/api/v1/pri/order/list", {
    params: {
        "token": token
    }
})

//⽤户信息接⼝
export const getUserInfo = (token) => axios.get("/api/v1/pri/user/find_by_token", {
    params: {
        "token": token
    }
})

Vue-Router开发前端项目路由

什么是vue-router?

vue-router是 Vue.js 官方的路由管理器,它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌,可详见官方文档

配置项目路由

在src->router->index.js配置路由
在这里插入图片描述
配置路由

import Vue from 'vue'
import VueRouter from 'vue-router'

import Home from '../views/Home/Home.vue'
import CourseDetail from '../views/CourseDetail/CourseDetail.vue'
import Login from '../views/Login/Login.vue'
import Order from '../views/Order/Order.vue'
import Pay from '../views/Pay/Pay.vue'
import Personal from '../views/Personal/Personal.vue'
import Register from '../views/Register/Register.vue'

// 路由绑定到Vue
Vue.use(VueRouter)

const routes = [
  {
    path: "/",
    name: "Home",
    component: Home
  }, {
    path: "/coursedetail",
    name: "CourseDetail",
    // 按需加载
    component: () => import("../views/CourseDetail/CourseDetail.vue")
    // 一次性加载
    //component:CourseDetail
  }, {
    path: "/login",
    name: "Login",
    component: Login
  }, {
    path: "/order",
    name: "Order",
    component: Order
  }, {
    path: "/pay",
    name: "Pay",
    component: Pay
  }, {
    path: "/personal",
    name: "Personal",
    component: Personal
  }, {
    path: "/register",
    name: "Register",
    component: Register
  },
]

const router = new VueRouter({
  routes
})

export default router

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/351518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive SQL语言:DDL建库、建表

Hive SQL语言:DDL建库、建表 Hive数据模型总览 Hive SQL之数据库与建库 SQL中DDL语法的作用 ⚫ 数据定义语言(Data Definition Language, DDL),是SQL语言集中对数据库内部的对象结构进行创建,删除,修改等的操作语言&#xff…

《反电信网络诈骗法》实行,Galaxybase图平台成为电信反诈黑科技

电信网络诈骗在当前的数字化生活中始终是一个高频讨论词。 近年来,随着互联网技术发展迅速,线上交易趋于频繁化,以电信网络诈骗为代表的新型网络犯罪行为也变得越来越高发。根据中国信通院《新形势下电信网络诈骗治理研究报告(20…

交互式推荐在外卖场景的探索与应用

外卖场景的用户停留时长低于传统电商,对用户实时需求的理解和反馈有更高的要求。针对业务问题,外卖推荐团队从2021年起开始持续投入,最终摸索出了一套适用于外卖场景的交互式推荐架构和策略,并取得了较好的收益。下文将详细介绍外…

论文:拖曳线列阵拖曳噪声抑制的试验研究,阅读笔记

目录摘要目前的噪声来源和抑制的方法1.来源2.抑制方法针对流致振动引起的间接噪声提出解决方法1.结构减振优化设计2.扩大水听器与护套的间距实验1.如何划分对象组2.实验装置实验结果实验组1:结构减振优化设计的效果实验组2:扩大水听器与护套的间距的效果…

跨境电商卖家敦煌、雅虎、乐天、亚马逊测评自养号的重要性!

作为亚马逊、敦煌、乐天、雅虎等跨境的卖家,这两年以来,面对流量越来越贵的现实,卖家需要更加珍惜每次访问listing页面的流量,把转化做好,把流量尽可能转化为更多的订单。 提升转化率的技巧 提升产品转化率&#xff0…

springsecurity最基础的授权过程

​ 在SpringSecurity中,会使用默认的FilterSecurityInterceptor来进行权限校验。在FilterSecurityInterceptor中会从SecurityContextHolder获取其中的Authentication,然后获取其中的权限信息。当前用户是否拥有访问当前资源所需的权限。 ​ 所以我们在项…

【JAVA八股文】JVM虚拟机相关

JVM虚拟机相关1. JVM 内存结构2. JVM 内存参数3. JVM 垃圾回收4. 内存溢出5. 类加载6. 四种引用7. finalize1. JVM 内存结构 结合一段 java 代码的执行理解内存划分 执行 javac 命令编译源代码为字节码执行 java 命令 创建 JVM,调用类加载子系统加载 class&#xf…

使用 ChatGPT 、Stable Diffuison、React和NodeJS构建网站图库

本文译者为360奇舞团前端开发工程师原文标题:Building a website gallery with ChatGPT, Stable Diffusion, React and NodeJS原文作者:Nevo David原文地址:https://javascript.plainenglish.io/building-a-website-gallery-with-chatgpt-sta…

Apollo Planning规划算法仿真调试(15):使用Vscode断点调试apollo的方法更新版

前言 使用Vscode断点调试apollo的方法之前在该专栏写过一篇分享,后台很多粉丝留言希望写的更详细一点,所以更新一版,尽量将配置过程详细描述,并且附上完整的配置文档。 Vscode 作为轻量化的调试工具深受广大开发者的青睐,虽然大家都用它来看新闻逛论坛炒股,但是用它开发…

【郭东白架构课 模块一:生存法则】01|模块导学:是什么在影响架构活动的成败?

你好,我是郭东白。这节课是我们模块一的导入部分,我会先来介绍模块的主要内容,以及为什么我要讲生存法则这个话题。 一名软件架构师要为相对复杂的业务制定,并且引导实施一个结构化的软件方案。这个发现最终方案和推动实施的过程&…

智加科技上市箭在弦上,头部自动驾驶技术企业何去何从?

/ 导读 /受禾赛科技美股上市成功的影响,中国商用车自动驾驶技术公司智加科技也传出了即将拆分在美股上市的消息。其中,智加科技的中国部分据传将被满帮收购,并且将并入自动驾驶卡车公司挚途科技。至于美国部分,将寻求独立上市。对…

python切片总算搞明白了

不会python已久矣! 简单切片 简单切片指的是这样的切片形式:a[start:stop], 左闭右开 负索引可以直接代表那个值 >>> a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> a[2:3][2]>>> a[5:9][5, 6, 7, 8]>>> a[5…

电商导购CPS,拼多多(多多进宝)如何跟单实现用户和订单绑定

前言 大家好,我是小悟 做过自媒体的小伙伴都知道,不管是发图文还是发短视频,直播也好,可以带货。在你的内容里面挂上商品,你自己都不需要囤货,如果用户通过这个商品下单成交了,自媒体平台就会…

Cortex-M0中断控制和系统控制

目录1.NVIC和系统控制块特性2.中断使能和清除使能3.中断挂起和清除挂起4.中断优先级5.中断控制的通用汇编代码使能和禁止中断设置和清除中断挂起状态设置中断优先级6.异常屏蔽寄存器(PRIMASK)7.中断输入和挂起行为8.中断等待9.系统异常的控制寄存器10.系…

JuiceFS 在火山引擎边缘计算的应用实践

火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算、网络、存储、安全、智能为核心能力的新一代分布式云计算解决方案。边缘存储主要面向适配边缘计算的典型业务场景&#…

Python seek()和tell()函数详解

在讲解 seek() 函数和 tell() 函数之前,首先来了解一下什么是文件指针。我们知道,使用 open() 函数打开文件并读取文件中的内容时,总是会从文件的第一个字符(字节)开始读起。那么,有没有办法可以自定指定读…

分布式事务实现机制及二阶段提交

注:本文章引自终于把分布式事务讲明白了! 分布式事务 分布式事务是指在分布式环境下事务,一个事务由多个数据库节点共同完成。分布式事务也必须要保证事务的ACID的特性。 实现分布式事务原子性的通常做法就是采用两阶段提交协议&#xff0c…

07- Rossmann商店销售预测 (Xgboost集成算法) (项目七)

查看数据是否为空: train.isnull().sum()查看特征元素: train[StateHoliday].unique() # array([0, a, b, c], dtypeobject)绘制热力图: sns.heatmap(df_train.corr(),cmap RdYlGn_r,annotTrue,vmin -1,vmax1)合并商店信息和销售数据: train pd.merge(train, store, on …

高校房产管理系统有哪些管理功能范围?

数图互通高校房产管理系统是基于公司自主研发的FMCenterV5.0平台,是针对中国高校房产的管理特点和管理要求,研发的一套标准产品;通过在中国100多所高校的成功实施和迭代,形成了一套成熟、完善、全生命周期的房屋资源管理解决方案。…

世界上最健康的程序员作息表!「值得一看」

昨晚看了一篇“传说中”的“世界上最健康的作息时间表”,开始纠结自己还要不要5点半起床。 都说程序员这一行,猝死概率极高,究其原因还是加班太狠、作息不规律、缺乏运动… 今天和大家分享一下这篇文章,还是非常值得参考的&#…