VUE和Element Plus

news2025/2/24 8:24:07

1.VUE

1.下载和配置环境

使用vue编程,我们需要使用到的编程软件是vs code,还需要使用node.js,这个的作用就类似于JDK,当我们都下载好之后,win+R键打开命令提示符,我们在这里可以查看版本,

npm -v

然后需要设置我们的镜像

npm config set registry https://mirrors.huaweicloud.com/repository/npm/

我们也可以查看我们的镜像 

npm config get registry

如果能查到我们的镜像,就代表成功了 

然后在d盘建一个文件夹名字叫easyvue,我们在这个文件夹目录执行下面语句

npm create vite@latest

 在执行完毕之后我们需要输入我们的新项目的名称比如easyvueb

然后依次选择vue和javascript,虽然TypeScript也能选,但是尽量使用java的,在选择完毕之后我们就可以去vscode打开这个文件夹,然后我们需要去配置我们的路由,因为vue是单页面的,我们为了实现页面之间跳转,需要使用路由,告诉页面需要向那个网页跳转,我们需要先在中端输入以下语句下载路由

npm install vue-router

然后在src下面建立一个新的文件夹,再新建一个文件叫index.js里面的代码如下

import {createRouter,createWebHashHistory} from  'vue-router'

const router=createRouter(
    {
    history:createWebHashHistory(),
    routes:[
        {path:'/easy',component:()=>import("../views/easy.vue"),
            children:[{path:'/stafflist',component:()=>import("../views/stafflist.vue")}]
        }
    ]
    }
);

export default router;

第一行是代表导入了两个对象从vue-router文件中,这个文件是我们的node-modules里面的,是我们的配置文件,如果没有子路由,children包括后边的可以不写,子路由是在浏览器页面中,我们通过点击需要跳转到的页面,比如我们在一个页面中需要查看表格,就需要使用到我们的子路由。

在代码中路径部分意思是每当我们路径是访问easy的时候,就是要访问views下面的easy.vue文件。最后一行代码代表是要导出这个路由,这样才能被使用,要不然其他文件里面导入不进去。

然后我们就需要在main.js文件夹下面导入这个路由,然后使用这个路由

import router from './router'      //导入路由语句




createApp(App).mount('#app')     //原本的
   //使用之后:
 createApp(App).use(router).mount('#app')

然后我们再中端下载axios

npm install axios

这个可以帮助我们进行前后端数据交互,下载好了之后再src包下建一个新的文件夹util,然后建一个文件 http.js在里面我们需要导入如下代码

import axios from 'axios';

export default function (options) {
    //配置每次发送请求都从sessionStorage中获取名字叫token的数据,
    //添加到请求头部的Authorization属性中

    //Object.assign用于合并对象的数据
    options.headers = Object.assign(
        { Authorization: sessionStorage.getItem('token') },
        options.headers || {}
    );
    //axios()   返回一个promise对象,用于异步请求
    //options是一个对象,其中包含了许多用于配置请求的参数,
    //例如请求的url、请求方法(GET、POST等)、请求头等
    return axios(options)
        .then(({ status, data, statusText }) => {
            //该函数在请求成功并返回数据时被调用
            //status:HTTP状态码,例如200表示请求成功。
            //data:服务器返回的数据。
            // statusText:HTTP状态文本,例如"OK"表示请求成功。
            console.log(data);
            if (status == 200) {
                return data;
            } else {
                throw new Error(statusText);
            }
        })
       .catch(e=>{
            return Promise.reject(e);
            //return Promise.reject(e.message);
        });
}

这样我们就可以进行数据交互了。也可以开始写项目了,在src包下的view包下建一个文件easya.js,在里面我们需要用到我们的三大标签<script>,<template>,<style>在<template>标签中键写<h1>easy page</h1>,然后我们还需要在我们的app文件中将所有的都删除,只留下三大标签还是在<template>中间写上<router-view></router-view>,这是我们的视图占位符,这时候我们启动项目

npm run dev

就可以在我们的浏览器看见easy page,

2. 使用实例

VUE中有三大标签<script>,<template>,<style>,

(逻辑)<script>:里面是使用我们的javascript编写,一般包含属性,方法,生命周期,这里面用于处理数据逻辑,事件处理

(结构)<template>:模板是组件的可视化部分,定义了组件的 HTML 结构。使用 Vue 的模板语法来绑定数据、渲染列表、条件渲染等。可以包含 Vue 的指令、插值表达式、事件绑定等

(样式)<style>:样式定义了组件的外观和布局。可以使用 CSS、预处理器(如 SASS、Less)、CSS 框架(如 Bootstrap)等来编写样式。通常建议使用作用域样式,以确保样式只应用于当前组

1.

如果我们想实现每当我们点击按钮,我们的文本数字就增加1我们可以在<template>中间写

<button @click="changenum">按钮</button>

在<script>标签中写

const number=ref(12)
const changenum=function(){
    console.log("changenumber method")
    number.value=number.value+1;
}

就可以实现 

2.是否显示

<template>

<h1 v-text="number" v-if="shiwu"></h1>

<button @click="changeshiwu">是否显示</button>

<script>

const changeshiwu=function(){
    console.log("gaibian")
    shiwu.value=!shiwu.value;
}
const shiwu=ref(true);

 这样就可以实现,如果本来是显示出来的点击之后可以小时,否则反之

 3.获取数据

定义好了一个数组之后,获取数组里面的内容分别放在一个容器里面

<template>

<div v-for="(item,index) in arr" class="box">{{index}}:{{ item }}</div>

<style>

.box{
    height: 50px;
    width: 50px;
    border: 1px solid black;
    margin: 10px;
}

<script>

const arr=ref([12,34,56,78]);

4. 

 <template>

<button @click="getData">获取数据</button>

<script>

const staffData=ref({});

const getData=async()=>{
    staffData.value=await easyAPI.get("/api/getstaff")
    console.log(staffData.value);
}

 就可从数据库中获取数据,但是这里面路径要是http://localhost:8080/getstaff

从数据库获取到的数据打印到浏览器

 <template>

<el-button type="warning">Warning</el-button>
<table>
    <tr><td>id</td><td>code</td><td>name</td><td>salary</td></tr>
    <tr v-for="(item,index) in staffData"><td>{{ item.id }}</td><td>{{ item.code }}</td><td>{{ item.name }}</td><td>{{ item.salary }}</td></tr>
</table>

 <script>

onMounted(async function(){
    let result=await easyAPI.get("/api/getstaff");
    staffData.value=result.data;
    console.log(staffData.value);
});

路径也要和刚才那样

3.api动态代理

在src包下建一个api文件夹,在里面建一个index.js文件写下面代码

import http from '../util/http.js';

 const API={
    get:(url)=>{return http({url:url,method:'get'})}
};
export default API;

在vite.config.js文件夹中写下面代码

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  server:{
    // 配置vite冷启动项目自动使用浏览器访问首页
    open:true,
    proxy: {  
      '/api': {
        target: 'http://localhost:8080',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
      },
    }
  }
})

 这样之后,我们就可以和2.4一样写api就可以了,如果以后端口号改变了,只需要在这里面改一次就行,不需要到处更改

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

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

相关文章

《计算机网络 - 自顶向下方法》阅读笔记

《计算机网络 - 自顶向下方法》阅读笔记 应用层、运输层、网络层、数据链路层 计算机网络和因特网&#xff1a; 因特网&#xff1a; ​ 是一个世界范围的计算机网络&#xff0c;互联了全世界的计算机设备 计算机设备&#xff1a;手机&#xff0c;电脑&#xff0c;游戏机&#…

MATLAB数据可视化:在地图上画京沪线的城市连线

matlab自带的geoplot(lat,lon) 可以在地理坐标中绘制线条。使用 lat和lon分别指定以度为单位的经度和纬度坐标。 绘制京沪线所经城市线条&#xff1a; citys [116.350009,39.853928; 116.683546,39.538304; 117.201509,39.085318; 116.838715,38.304676;...116.359244,37.436…

Java网络编程——HTTP协议原理

协议 我们在网上冲浪时&#xff0c;会在浏览器地址栏输入一个网址&#xff0c;然后就能打开网页了。比如&#xff0c;输入 https://www.douban.com/就可以访问到豆瓣的主页&#xff1a; 那么大家是否好奇&#xff1a;https 是什么意思&#xff0c;作用又是什么呢&#xff1f;…

语言模型简介和Ngram模型(1)

语言模型介绍一 语言模型语言模型概念语言模型应用-语音识别声纹特征提取语言模型挑选成句 语言模型应用-手写识别语言模型应用-输入法语言模型分类语言模型评价指标-困惑度PPL N-gram语言模型马尔科夫假设平滑问题平滑问题解决一平滑问题解决二 插值优化语言模型应用-文本纠错…

unity 创建项目报错feature has expired (H0041),sentinel key not found (H0007)

两个报错同一种处理方式。 1、删除以下路径所有文件&#xff1a;C:\ProgramData\SafeNet Sentinel&#xff08;注意&#xff1a;ProgramData为隐藏文件&#xff09; 2、打开Cmd&#xff08;WinR键&#xff0c;输入cmd回车&#xff09;&#xff0c;进入Unity安装所在盘符&#…

SecureCRT记录会话日志

在使用SecureCRT软件的时候&#xff0c;有个非常实用的功能&#xff1a;记录会话日志&#xff0c;就是可以把当前会话的所有记录保存成文本文件。下面简单介绍一下如何使用这个功能。 首先点击SecureCRT软件左上角的文件 然后点击会话日志即可 然后选择一个路径保存日志&#…

物流仓库安全视频智能管理方案:构建全方位、高效能的防护体系

一、背景分析 随着物流行业的快速发展和仓储需求的日益增长&#xff0c;仓库安全成为企业运营中不可忽视的重要环节。传统的人工监控方式不仅效率低下&#xff0c;且难以做到全天候、无死角覆盖&#xff0c;给仓库资产和人员安全带来潜在风险。因此&#xff0c;引入仓库安全视…

Datawhale AI夏令营第四期 魔搭-AIGC方向 task01笔记

目录 赛题内容 可图Kolors-LoRA风格故事挑战赛 baseline要点讲解(请配合Datawhale速通教程食用) Step1 设置算例及比赛账号的报名和授权 Step2 进行赛事报名并创建PAI实例 Step3 执行baseline Step4 进行赛题提交 微调结果上传魔搭 lora 调参参数介绍及 SD 的基础知识点…

ST-LINK烧录MCU

打开ST-LINK软件&#xff1a; 主板断电状态下接入烧录器&#xff0c;烧录器USB连接电脑&#xff1a; 主板上电&#xff0c;点击连接按钮&#xff1a; 点击加载文件&#xff1a; 点击写入按钮&#xff0c;烧录成功后拔掉烧录器&#xff0c;主板重新上电

CPU 流水线技术初识

在当今数字化的时代&#xff0c;计算机已经成为我们生活中不可或缺的一部分。而在计算机的核心部位&#xff0c;中央处理器&#xff08;CPU&#xff09;则是其重要的组成部分。CPU 的性能决定了计算机的运行速度和处理能力&#xff0c;而流水线技术则是 CPU 性能提升的关键所在…

SCAU华南农业大学 高级程序语言设计(C语言)OJ实验题解

有错漏/建议/意见 欢迎在评论区提出&#xff01;&#xff01;&#xff01; 实验1 C语言程序初步 堂前习题 6567 第一个C程序 描述&#xff1a; 将下列程序输入Visual C&#xff0c;编译、连接和运行该程序&#xff0c;运行通过后&#xff0c;提交程序。 输入&#xff1a; …

不同环境下RabbitMQ的安装-3 操作RabbitMQ

前面两篇从不同环境下RabbitMQ的安装-1 为什么要使用消息服务 到同环境下RabbitMQ的安装-2 ARM架构、X86架构、Window系统环境下安装RabbitMQ介绍了关于如何在ARM架构、X86架构和Window系统下如何安装&#xff0c;各位小伙伴可以根据自己的实际开发场景参考安装。 到本篇是一些…

宿主机与容器(docker)之间的数据共享

目录 一台宿主机上的容器和宿主机之间的数据共享 创建卷 进入Docker的卷的存储位置 进入卷ep1的数据存储位置 创建容器并挂载至卷ep1上 测试&#xff1a; 进入容器内部查看 一台宿主机上的多个容器之间的数据共享 挂载新的docker容器在该卷上 查看修改的数据是否一致…

CocosCreator使用 ProtoBuf WebSocket与服务器对接方法

在 Cocos Creator 中使用 .proto 文件和转换成 TypeScript&#xff08;TS&#xff09;两者各有其优缺点&#xff0c;具体选择取决于你的项目需求和团队的开发习惯。以下是两者的一些比较&#xff1a; 1、使用 .proto 文件的优点&#xff1a; 跨语言支持&#xff1a;Protocol B…

对目录的操作

1.fileno&#xff1a;获得文件流指针里的文件描述符 int fd fileno(FILE *fp) 成功返回文件描述符 失败返回-1 2.fdopen:与fileno相反&#xff0c;将文件描述符转换为文件流指针 FILE *fp fdopen(int fd) 成功返回文件流指针 失败返回-1 一、目录&#x…

药物研发企业专属项目管理系统案例(PMS)分享:丽珠医药集团上线瑞杰 SuperProject 系统

丽珠医药集团股份有限公司与北京瑞杰科技达成合作&#xff0c;丽珠医药集团选择瑞杰科技自主研发的 SuperProject 系统来打造一套专业的医药研发项目管理平台&#xff0c;帮助丽珠医药更好地规划、执行和监控药物研发项目&#xff0c;确保项目按时、按质、按量完成&#xff0c;…

数学规划模型|线性规划|整数规划

规划模型的概念 如何来分配有限资源&#xff0c;从而达到人们期望目标的优化分配数学模型&#xff0c;它在数学建模中处于中心地位。 这类问题一般可以归结为数学规划模型&#xff0c;规划模型的应用极为广泛&#xff0c;其作用已为越来越多的人所重视 规划模型是数学建模竞赛…

翰德恩赋能中国邮政信息科技产品创新系列培训

为了增强中邮信科公司需求分析工程师的专业素养&#xff0c;提升其业务需求和业务价值的挖掘能力&#xff0c;进而设计并交付满足用户期望的产品&#xff0c;提升用户体验&#xff0c;运营管理部于2024年4月至6月成功举办了六期需求分析工程师能力提升系列培训。 本次系列培训…

Maven依赖管理【后端 2】

Maven依赖管理详解 在Java项目开发中&#xff0c;依赖管理是一个至关重要的环节。Maven作为Java世界中最流行的项目管理工具之一&#xff0c;通过其强大的依赖管理机制&#xff0c;极大地简化了项目构建和依赖管理的复杂性。本文将详细介绍Maven的依赖配置、依赖传递以及依赖范…

QT生成.exe文件无法在未安装QT的电脑上运行的解决办法

在没有安装qt的电脑上运行qt生成的exe文件&#xff0c;提示&#xff1a; The application failed to start because no Qt platform plugin could be initialized 在网上找了很多办法&#xff0c;我尝试了 手动&#xff1a; 1、修改环境变量&#xff0c;2&#xff0c;添加pla…