vue+element-ui初体验入门拥有自己的前台项目以及配置文件讲解(2)组件式开发,路由,请求发送

news2025/1/15 23:25:47

阿丹:

        前面的文章已经进行了vue的组件安装,本篇文章来了解一下vue的语句语法以及element-ui的具体用法。并使用全局的守卫路由来完成用户完成登录来请求头携带token

导入axios以及导入element-ui

按照图片指引来到main.js将我们前面文章下载的组件进行导入

import Element from 'element-ui'  //引入element-ui
import axios from 'axios'  //引入axios
Vue.use(Element)		//使用element-ui
Vue.prototype.axios = axios; //使用axios
import 'element-ui/lib/theme-chalk/index.css';

代码解读:

这是一段 Vue.js 代码片段,它通过引入 element-ui 和 axios 库并将其绑定到 Vue 上,来扩展 Vue 的功能。

具体来说,这段代码首先使用 import 语句从文件系统中引入 element-ui 和 axios 库,然后将 Element 对象绑定到 Vue 上,以便在Vue实例中使用 element-ui 的组件。使用 Vue.use(Element) 表示将 Element 对象注册为 Vue 插件。然后,通过 Vue.prototype.axios = axios ,将 axios 库绑定到 Vue.prototype 上,使得在 Vue 实例中所有地方都可以使用 axios,而不必重复引入。

最后,通过 import 'element-ui/lib/theme-chalk/index.css' 语句引入 element-ui 的 CSS 样式表,以适用于应用程序中的所有组件。

在vue中新建一个页面并给与路由跳转

上面我们新建了一个vue项目,现在运行的时候发现是一个初始化页面,我们现在开始动手获得一个自己自定义的页面

1、创建一个新的vue页面

在components文件夹下面创建一个属于自己的页面 

 

 2、新建了一个adsvue.vue的页面

 我们能看到默认的页面中有一些自己生成的代码。我们来了解一下

是一个Vue的组件文件,包括模板、脚本和样式部分。Vue是一种流行的JavaScript框架,用于构建交互式Web应用程序。模板部分描述了页面的布局和组件之间的关系,脚本部分包含Vue组件的逻辑,而样式部分则定义了组件的外观和样式

我们注意到

export default{

        name:"adsvue"
}

在Vue组件中,name选项是组件的名称。如果你使用了Vue的单文件组件(.vue文件),那么组件的名称无需设置,系统会自动生成。但如果你使用的是vue.js,就需要手动指定name属性,作为唯一标识一个组件,用于调试与渲染。举个例子,如果在其他组件中引用了这个组件,那么就可以使用"name"来引用这个组件,而不是用组件的路径。这样可以更方便地管理组件,并且可以提高代码的可读性。

3、使用vue的一个模版来快速的帮助开发

下面是一个帮助快速开发的vue模版,如果有需求需要使用上面的使用名字来调用的话可以加入上面的代码。

<template>
  <div></div>
</template>

<script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
//例如:import 《组件名称》 from '《组件路径》,
  export default {
    //import引入的组件需要注入到对象中才能使用"
    components: {},
    props: {},
    data() {
      //这里存放数据"
  
      return {};
    },
    //计算属性 类似于data概念",
    computed: {},
    //监控data中的数据变化",
    watch: {},
    //方法集合",
    methods: {},
    //生命周期 - 创建完成(可以访问当前this实例)",
    created() {
    },
    //生命周期 - 挂载完成(可以访问DOM元素)",
    mounted() {
    },
    beforeCreate() {
    }, //生命周期 - 创建之前",
    beforeMount() {
    }, //生命周期 - 挂载之前",
    beforeUpdate() {
    }, //生命周期 - 更新之前",
    updated() {
    }, //生命周期 - 更新之后",
    beforeDestroy() {
    }, //生命周期 - 销毁之前",
    destroyed() {
    }, //生命周期 - 销毁完成",
    activated() {
    } //如果页面有keep-alive缓存功能,这个函数会触发",
  };
</script>
<style scoped>

</style>

现在我们已经拥有了一个属于自己的vue页面,但是我们发现无法通过路径等去访问到我们这个页面,那么我们需要将这个vue页面添加在路由中。那么我就能使用路径来访问到这个页面了。

4、将vue项目添加入路由

这个就是路由的配置页面

能看到现在只有helloworld一个页面

将我们的页面添加进入导入了页面 

 

创建对于这个vue项目的路由 

 

这段代码是用来定义Vue Router路由的一个路由对象,其中path属性是路由的路径,name属性是路由名称,component属性是路由对应的组件。

  • path:表示可以匹配到这个路由的路径
  • name:表示当前路由的名称,用于与其他路由区分开来
  • component:指定路由渲染的组件,可以通过import adsvue from '@/components/adsvue.vue'引入adsvue组件,然后将它设置为component的值。

现在简单的路由已经介绍完毕了。我们现在我们自定义的页面上写一点东西,我们演示一下效果。 

可以看到vue页面可以正常的打开。

如果想访问我们自己的页面就需要在上面的路径上输入对应页面的路径

现在属于我们的页面就跳转出来了。 

 现在开始路由的重点

守卫路由

阿丹:

之前在写jsp页面项目的时候拦截器大部分在后台写的,vue中可以在前台完成这样的效果。

简单介绍一下vue中守卫路由:

Vue中的路由守卫是一个函数,在进行路由导航时会被调用,用于控制是否允许进行导航。可以使用它进行权限控制、路由拦截、数据预处理等操作。Vue Router提供了多种类型的路由守卫:

  • 全局守卫:这些守卫被注册在Vue Router实例上,对所有路由生效。可以用来处理用户登录状态、路由拦截、页面切换前的处理等。包括beforeEach、beforeResolve、afterEach等。
  • 路由独享守卫:这些守卫被注册在路由配置上,只对当前路由生效。可以用来处理当前路由的权限问题、数据预处理等。包括beforeEnter等。
  • 组件内守卫:这些守卫被注册在具体的组件中,只对当前组件生效。可以用来处理组件内路由的生命周期。包括beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave等。

使用守卫可以很方便地控制路由的跳转,并在此过程中进行其他操作,避免用户恶意操作和不当使用带来的问题。

全局守卫路由

全局守卫路由,分为三种,用于

全局守卫: 

全局前置守卫,

前置守卫是在用户进行全局访问前进行出发,可完成操作有:

        1、校验是否请求头携带token

        2、全局请求头挂载token

        等 


router.beforeEach((to, from, next) => {
  console.log('')
  next()
}

后置路由守卫

这个功能主要用于收集用户的操作数据以及进行数据分析和日志记

 后置守卫的业务场景

  1. 统计用户停留时间:在用户离开页面时执行一个定时器,记录用户在该页面停留的时间,并将这些数据发送到服务器端进行分析。

  2. 记录用户操作轨迹:使用后置路由守卫跟踪用户在网站中的操作路径,然后记录这些数据以便日后分析。这个功能可以帮助开发人员改进用户界面的设计和用户体验。

  3. 页面错误监控:通过监听后置路由守卫,开发人员可以及时发现页面上出现的错误和异常情况,并在第一时间内向用户展示错误信息。

  4. 登录态检查:通过后置路由守卫检查用户是否登录,然后根据用户的登录状态决定是否跳转到登录页面。


router.afterEach((to, from, next) => {
  console.log('')
  next()
}

 全局解析守卫

全局解析守卫是 Vue 中的一种全局钩子函数,它可以在路由解析被触发之前进行处理,常用于路由中的数据预取或其他需要在路由解析前执行的逻辑。下面是一些可能需要使用全局解析守卫的业务场景:

  1. 数据预取:在路由解析前,使用全局解析守卫预先获取页面所需的数据,以便提高页面加载速度和用户体验。

  2. 权限控制:使用全局解析守卫根据用户权限信息判断当前用户是否有权限进入某个页面,从而进行页面授权管理。

  3. 多语言支持:可以使用全局解析守卫在路由解析前根据用户所选语言版本,在页面上做出相应的显示和语言切换。

  4. 节流控制:当应用的某个页面需要频繁更新和请求数据时,可以使用全局解析守卫控制请求的节奏,防止频繁请求数据造成服务器压力过大。


router.beforeResolve((to, from, next) => {
  console.log()
  next()
}

 注意补充顺序:

beforeEach------------------->beforeEnter------------->beforeRouterEnter------------->beforeResolve-------->affterEach

进入前置守卫--------------->读取路由信息-------------->进入组件---------------->进行解析------------>

进入后置守卫

参数说明:

1.to 表示要去哪里

2.from  表示从哪里来

3.next  表示是否方向

阿丹在这里只介绍了一部分路由需要的可自行百度

axios在vue的使用

阿丹:

        其实看起来axios很陌生在但是它在jsp中的名字叫做ajax。是不是一下子就熟悉起来了。

但是和jsp中有区别的是:

        在jsp中大概率我们发布和生产的环境是打成了一个war包,也就是意味着在运行的时候出现的是一个项目中前台和后台相互的访问。也就是一体的。这里就不牵扯到一个致命的问题:跨域

那么在vue中的axios中访问去发送请求有两种方式:

通过这个指令来安装axios 

npm install --save axios

        1、直接将路径输入,直接对路径发送进行请求。

        2、通过在配置文件中书写代理通常是/api来转发请求。

        在处理和使用两个方法的时候就要涉及跨域问题了。

        在开始我们的vue路途上我们先将跨域问题来进行解决。

在讲解开始前先说明一下我的后台的相关接口等

这里port说明我的后台处理接口为10001。也就是说需要向后台传送请求的时候就需要将ip+10001+路径就可以将数据请求达到后台服务器。

直接将路径输入来发送请求时:

请求的路径为https://ip+:后台端口/请求路径

axios.get(url).then(
res=>{

    }
)

axios.post(url,this.form).then(
res=>{

    }
)

参数说明

url是字符串形式可以使用字符串拼接来拼接请求路径

当请求方法为post的时候有两个参数,第一个参数为请求路径,第二个参数为向后台传递的表单。

res为请求之后的返回值可使用控制台打印来查看返回值结构。然后使用

this.需要赋值的对象 = res.根据结构来拿取需要的内容

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

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

相关文章

基于matlab将天线工具箱与相控阵系统配合使用(附源码)

一、前言 创建天线阵列&#xff08;如均匀线性阵列 &#xff08;ULA&#xff09;&#xff09;时&#xff0c;可以使用相控阵系统工具箱中内置的天线。或者&#xff0c;您可以使用天线工具箱天线。天线工具箱天线提供物理天线的真实模型。它们是使用力矩的方法设计的。相控阵天线…

自动化测试工具 AirTest 的使用方法与简介

目录 前言&#xff1a; Airtest简介 1.基于图像识别的Airtest框架 2.基于UI识别的Poco框架 Airtest环境搭建 Airtest布局 Airtest使用步骤 第一步&#xff1a;连接移动设备 第二步&#xff1a;创建一个.air文件&#xff08;也就是我们的测试脚本&#xff09; 第三步&#xff1a…

相机去畸变

1. 背景 在做图像感知工作过程中会遇到需要处理相机畸变的情况&#xff0c;如SLAM、3D重建等&#xff0c;则需要了解一些常见相机模型的成像过程&#xff0c;以及依据成像过程实现去除相机成像的畸变。 注意&#xff1a;这篇文章并不涉及太多相机参数畸变原理&#xff0c;更多…

Vicuna模型权重合成及模型部署

第一式&#xff1a;Vicuna模型部署 1.环境搭建1.1 构建虚拟环境1.2 安装FastChat1.2.1 利用pip直接安装1.2.2 从github下载repository然后安装 2.Vicuna Weights合成2.1 下载vicuna delta weights2.2 下载原始llama weights2.3 合成真正的working weights2.3 填坑手册 3. 使用命…

第九章 os模块

1. os模块介绍 os 模块是Python 内置的与操作系统中的文件系统相关的模块&#xff0c;该模块依赖于操作系统。通常情况下&#xff0c;如不特别指出&#xff0c;该模块提供的方法、属性在Windows 和UNIX 系统上都是可用的。其中&#xff0c;UNIX 系统包括Linux 和Mac OS X 说明…

软件加密类型及原理特点总结

目录 一、软件加密目的 二、加密方式介绍 2.1 硬件加密 2.2 软件加密 三、软件加密方式 3.1非对称加密算法 3.2对称加密算法 四、数字签名 五、软件破解方式 参考文献 一、软件加密目的 防止软件被复制使用并恶意破坏&#xff0c;给企业和个人带来经济损失。 二、加密方…

杂记 | 使用Docker和Nginx为网站添加HTTPS访问功能

文章目录 01 准备工作1.1 HTTPS介绍1.2 准备工作 02 编写nginx.conf03 使用docker启动nginx 01 准备工作 1.1 HTTPS介绍 HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是一种通过加密通信保护网站数据传输的协议。它是 HTTP 协议的安全版本&#xff0c;通…

ROS下写服务

话题和服务的对比&#xff1a; 1.话题 话题是单向的&#xff0c;而且不需要等待服务端上线&#xff0c;直接发就行&#xff0c;数据的实时性比较高。 频率高&#xff0c;实时性强的传感器数据的传递一般使用话题实现。 话题通信是ROS中使用频率最高的一种通信模式&#xff0c…

人工智能之后,量子计算将成为下一趋势

光子盒研究院 人工智能显然是席卷科技行业的最新热潮&#xff0c;但一个更大的趋势可能即将到来&#xff0c;那就是量子计算——只要它能解决令人不安的网络安全问题。 量子计算的进展似乎注定要使今天的基于电子芯片的超级计算机逊色。这些机器在亚原子水平上工作&#xff0c;…

excel爬虫相关学习1:简单的excel爬虫

目录 1 什么是excel 爬虫 2 EXCEL爬虫 2.1 excel 爬虫的入口 2.2 需要配置的信息 2.2.1 如何获得 ua信息 2.3 获取的信息 2.3.1 获取信息的基本内容 2.3.2 获取过程 2.3.3 我们只用关注“表视图 ” 即可 2.4 EXCEL获得的爬虫数据 加载到excel里 2.5 数据到了excel表后…

解决关于由于找不到vcruntime140_1.dll丢失的解决方法(有效的解决方法)

vcruntime140_1.dll是什么什么文件呢&#xff1f;为什么电脑在运行一些游戏的时候会出现丢失vcruntime140_1.dll&#xff0c;然后游戏运行失败?这个dll文件是电脑重要的运行库文件。丢失了会导致很多程序无法运行。 本教程操作系统&#xff1a;Windows vcruntime140_1.dll丢失…

AN10834-MIFARE ISOIEC 14443 PICC selection.pdf

AN10834-MIFARE ISOIEC 14443 PICC selection.pdf 1简介 在读卡器&#xff08;系统&#xff09;和智能卡之间交换数据之前&#xff0c;必须正确选择智能卡。该卡选择过程&#xff08;卡激活&#xff09;在用于非接触式接近系统的ISO14443-3中进行了描述。非接触式应用的急剧增…

k8s部署成功后却显示结点一直处于NotReady状态解决方案

直接说结论&#xff1a;原因是服务器的/opt/cni/bin/目录中没有flannel插件&#xff0c;安装flannel 到/opt/cni/bin/目录下即可。具体步骤往下看。 [rootK8SMaster ~]# journalctl -f -u kubelet.service 先看下报错&#xff0c;发现我一直显示NotReady的原因是由于 [faile…

windows系统安装显卡驱动软件和CUDA11.1的详细教程

深度学习目标检测框架在进行图像计算时需要GPU进行加速&#xff0c;需要用到硬件GPU显卡&#xff0c;目标检测框架和硬件GPU建立联系需要通过①显卡驱动软件&#xff1b;②CUDA软件依次建立联系。这两个软件&#xff0c;可直接从NVIDIA官网下载&#xff0c;版本没有非常严格的需…

【玩转Linux操作】详细讲解Linux的 at定时任务

&#x1f38a;专栏【玩转Linux操作】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Counting Stars】 欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f354;基本介绍⭐怎么保证atd进程启动了 &#x1f354;at命…

Unity3D期末大作业(捕鱼达人)【免费开源】

目录 1 游戏简介 2 游戏各模块 2.1 主界面 2.2 加载界面 2.3 主游戏场景 2.4 游戏内道具 2.4.1 炮塔 2.4.2 技能 2.4.3 宝箱 2.4.4 鱼类 3 参考教程 4 项目地址 4.1 运行环境 4.2 源工程文件链接 4.3 结课报告 1 游戏简介 大部分人都玩过这个游戏吧&#xff0c;这…

chatgpt赋能python:使用Python来寻找两个列表不同元素的方法

使用Python来寻找两个列表不同元素的方法 在编写Python程序时&#xff0c;我们经常需要比较两个列表的元素&#xff0c;找出它们之间的不同之处。在搜索引擎优化&#xff08;SEO&#xff09;方面&#xff0c;这种比较对于找出两个网站内容的差异也非常有用。在这篇文章中&…

chatgpt赋能python:Python找出三个整数中的最大数

Python 找出三个整数中的最大数 在编程中&#xff0c;经常需要寻找一组数中的最大值。Python 提供了多种方法来实现此目的。本文将针对三个整数寻找最大值进行说明。 方法一&#xff1a;使用if语句 首先&#xff0c;我们可以使用if语句进行比较&#xff0c;找出最大值。 de…

开发日记-凌鲨中的评估体系

软件项目很难进行很好的管理&#xff0c;本质上是无法有效的评估项目成员的贡献&#xff0c;无法有效的评估技术债务。 由于人性的复杂&#xff0c;大多数的评估规则都能被绕过。比如&#xff1a; 代码行数的指标&#xff0c;造成大量冗余和无用代码。千行代码BUG率&#xff…

react知识点汇总一

以下是一些React中经典的知识点&#xff1a; 什么是React&#xff1f;它有哪些特点和优势&#xff1f; React是一个由Facebook开发的UI框架&#xff0c;用于构建单页面应用程序。它的特点和优势包括&#xff1a; 组件化&#xff1a;React的应用程序主要由多个组件组成&#…