博客前端项目学习day01

这里写自定义目录标题

  • 登录
    • 创建项目
    • 配置环境变量,方便使用
    • 登录页面
    • 验证码
    • 登陆表单

在VScode上写前端,采用vue3。

登录

创建项目

  1. 检查node版本

node -v

在这里插入图片描述

  1. 创建一个新的项目

npm init vite@latest blog-front-admin

中间会弹出询问是否要安装包,选择“y”即可。然后依次选择Vue和JavaScript。
在这里插入图片描述

ps:刚刚我的位置建错了,我换了一个位置重新建。

  1. 按照提示,进入项目,安装依赖并运行项目

cd blog-front-admin
npm install
npm run dev

在这里插入图片描述
在这里插入图片描述

  1. 删减得到一个干净的APP.vue

在这里插入图片描述

  1. 在src文件下新建路由文件,并安装路由包

npm install vue-router@4 --save
在这里插入图片描述

  1. 在src文件下新建视图文件,然后在视图文件下新建Index.vue,并简单写点东西,写的时候输入“vue”,然后选择vue3,它会自动填充vue3模板。

在这里插入图片描述

  1. 在router里面新建index.js文件,并补充完整简单的路由信息
import {createRouter,createWebHistory} from 'vue-router'
const routes =[{name:'首页',path:'/index',component:() => import('../views/Index.vue'),}
];const router = createRouter({routes,history:createWebHistory(),
})export default router

在这里插入图片描述

  1. 在main.js里面引用router,在App.vue里面加入路由

在这里插入图片描述

在这里插入图片描述

  1. 运行结果。
    在这里插入图片描述

配置环境变量,方便使用

  1. 配置代理路径,方便使用后端路径
server:{hmr:true,port:3001,proxy:{'/api':{target:"http://localhost:8081/",//目标代理接口地址secure:false,changeOrigin:true,//开启代理,在本地创建一个虚拟服务端pathRewrite:{'^/api':'/api',},},},},
  1. 配置本项目路径,方便引用
  resolve:{//配置路径别名alias: {'@':path.resolve(__dirname,'./src'),},},

安装路径依赖,并使用

npm install path --save

在这里插入图片描述

  1. 根据配置,前面的代码做出相应修改
    在这里插入图片描述
  2. 运行,此时的路径端口变成了修改后的3001
    在这里插入图片描述

登录页面

  1. 安装element-plus依赖,并在main.js里面引入

npm install element-plus --save

在这里插入图片描述

ps:要做登录页,那就把之前的Index.vue改为Login.vue,以及修改路由。
在这里插入图片描述

  1. 在Login.vue里面试用element-plus

在这里插入图片描述

在这里插入图片描述

  1. 设置登陆背景,安装相关依赖,

npm install sass --save
npm install sass-loader --save

然后设置背景图片,注意把style.css里面的内容都清空,添加简单的内容,不然会有影响。对于height,不知道为什么使用“height:100%”就不对。
在这里插入图片描述

在这里插入图片描述

请添加图片描述
5. 使用表格

  1. padding作用
    在这里插入图片描述
    注释的结果
    在这里插入图片描述

没注释的结果
在这里插入图片描述

验证码

在这里插入图片描述
在这里插入图片描述

登陆表单

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

<div class="login-body"><div class="login-panel"><div class="login-title">用户登录</div><el-form :model="formData" :rules="rules" ref="formDataRef"><el-form-item prop="account"><el-input placeholder="请输入账号" v-model="formData.account" size="large"><template #prefix><span class="iconfont icon-account"></span></template></el-input></el-form-item><!-- 其他表单项 --></el-form></div>
</div>

在这段代码中:

  • <div class="login-body"><div class="login-panel"> 是用来布局和样式化登录表单的外部容器。
  • <div class="login-title">用户登录</div> 显示了登录表单的标题。
  • <el-form> 是 Element UI 提供的表单组件,通过 :model="formData" 绑定了表单数据对象 formData:rules="rules" 绑定了表单验证规则对象 rulesref="formDataRef" 为表单组件添加了引用名称 formDataRef
  • <el-form-item prop="account"> 定义了一个表单项,prop="account" 指定了与 formData 对象中的 account 字段进行绑定。
  • <el-input> 是 Element UI 提供的输入框组件,通过 v-model="formData.account" 实现了与 formDataaccount 字段的双向绑定,placeholder 属性设置了输入框的占位符文本,size="large" 设置了输入框的尺寸为大号。
  • <template #prefix> 中的内容是输入框的前缀,这里使用了一个图标作为账号输入框的前缀图标,具体的图标样式是通过类名 iconfont icon-account 来定义的。

这段代码片段展示了一个基本的使用 Element UI 实现的用户登录表单界面,其中只包含了账号输入框的部分。你可以继续类似的方式添加密码输入框、登录按钮等其他表单元素,以完善整个登录界面的功能。

全部代码以及效果

<template>
<div class="login-body"><div class="login-panel"><div class="login-title">用户登录</div><el-form :model="formData":rules="rules"ref="formDataRef"><el-form-item prop="account"><el-input placeholder="请输入账号"v-model="formData.account"size="large" ><template #prefix><span class="iconfont icon-account"></span></template></el-input></el-form-item><el-form-item prop="password"><el-input placeholder="请输入密码"v-model="formData.password"size="large" ><template #prefix><span class="iconfont icon-password"></span></template></el-input></el-form-item><el-form-item prop="checkCode"><div class="check-code-panel">
<el-input placeholder="请输入验证码"v-model="formData.checkCode" class="input-panel"size="large"/><img :src="checkCodeUrl"class="check-code"@click="changeCheckCode"></div></el-form-item><el-form-item label=""><el-checkbox v-model="formData.rememberMe" :label="true" >记住我</el-checkbox>
</el-form-item><el-form-item label=""><el-button type="primary":style="{width:'100%'}"@click="login"> 登录</el-button></el-form-item></el-form></div>
</div></template><script setup>
import { reactive, ref } from "vue";
const api={checkCode:"api/checkCode"
}
const checkCodeUrl = ref(api.checkCode);
const changeCheckCode = () =>{checkCodeUrl.value = api.checkCode+"?"+new Date().getTime();
}//表单相关
const formDataRef=ref();
const formData=reactive({});const rules={account:[{required:true,message:"请输入用户名",}],password:[{required:true,message:"请输入密码",}],checkCode:[{required:true,message:"请输入验证码",}]}const login = ()=>{formDataRef.value.validate((valid)=>{
if(!valid){
return;
}});
}</script><style lang="scss">
.login-body{width: "100%";height: calc(100vh);background-image: url(../assets/login-bg.jpg);background-size: cover;background-position: center;.login-panel{float: right;margin-right: 100px;margin-top: 100px;padding: 20px;//内容不顶着边width: 350px;border-radius: 5px;//圆角box-shadow: 2px 2px 10px #ddd;//阴影background: rgba(255,255,255,0.7);
.login-title{font-size: 20px;text-align: center;margin-bottom: 10px;
}
.check-code-panel{width:100%;display:flex;align-items: center;.input-panel{// flex:1;// margin-right: 5px;}.check-code{// height: 30px;margin-right: auto;margin-left:5px;cursor:pointer;}
}
}
}</style>

请添加图片描述

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

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

相关文章

docker容器重启错误解决方案

目录 起因解决方案重启 起因 是这样的&#xff0c;今天客户服务器的服务器突然断电了&#xff0c;原本是配置了自启动的项目&#xff0c;在重启之后发现还是无法登录&#xff0c;然后又看了一眼工控机&#xff0c;欸&#xff0c;这边居然可以&#xff0c;那么问题就直接排除了…

大样本 OLS 模型及 Stata 具体操作步骤

目录 一、引言 二、理论原理 三、小样本 OLS 和大样本 OLS 的区别 四、数据准备 五、程序代码及解释 六、代码运行结果 一、引言 在统计学和计量经济学中&#xff0c;普通最小二乘法&#xff08;Ordinary Least Squares&#xff0c;OLS&#xff09;是一种广泛应用的线性回…

QT-RTSP相机监控视频流

QT-RTSP相机监控视频流 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include "mainwindow.h"#include <QDebug>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), m_settings("outSmart", "LiveWatcher&…

为什么品牌需要做 IP 形象?

品牌做IP形象的原因有多方面&#xff0c;这些原因共同构成了IP形象在品牌建设中的重要性和价值&#xff0c;主要原因有以下几个方面&#xff1a; 增强品牌识别度与记忆点&#xff1a; IP形象作为品牌的视觉符号&#xff0c;具有独特性和辨识性&#xff0c;能够在消费者心中留…

CSA笔记2-文件管理命令

tree 以树状图显示多级目录 示例&#xff1a; [rootlocalhost ~]# tree haha/ haha/ └── 111 └── 222 2 directories, 0 files [rootlocalhost ~]# tree -L 1 haha/haha/ └── 111 echo > >> < << 示例&#xff1a; [rootxxx ~]#…

【ACM 独立出版,高录用EI稳检索】2024年大数据与数字化管理国际学术会议 (ICBDDM 2024,8月16-18)

2024年大数据与数字化管理国际学术会议 (ICBDDM 2024)&#xff0c;将于2024年8月16-18日在中国上海召开。 “大数据与数字化管理”作为会议主题&#xff0c;旨在聚焦这一跨学科领域中最新的理论研究、技术进展、实践案例和未来趋势。本主题探讨的研究方向涵盖了大数据的收集、…

国家炮制规范-中药饮片炮制规范数据库

2022年12月21日&#xff0c;国家药监局实施了国家药典委员会制定的《国家中药饮片炮制规范》&#xff08;简称《国家炮制规范》&#xff09;&#xff0c;属于中药饮片的国家药品标准&#xff0c;各省需废止与其品名、来源、炮制方法、规格均相同品种的省级中药饮片炮制规范。这…

2024河南萌新联赛第一场 D 小蓝的二进制询问

原题链接&#xff1a;D-小蓝的二进制询问 题意&#xff1a;思路&#xff1a;对于从[l,r]上的数&#xff0c;可以先算出从[0,r]的所有二进制1然后减去[0,l]的所有二进制1。思考如何计算&#xff0c;从样例中给出的5来思考&#xff0c;[0,5]的二进制表示分别为&#xff1a;000&a…

力扣经典题目之->用栈实现队列 的详细讲解与实现,看这篇就够了!

一&#xff1a;题目 二&#xff1a;思路 1&#xff1a;先看两个概念&#xff1a; 2&#xff1a;题目的理解 用两个栈来实现队列&#xff08;表面&#xff09; 用栈的函数来实队列&#xff08;深层&#xff09; 用先进先出的栈函数 来实现后进先出的队列函数 &#xff08;本…

耐玩单机游戏推荐:文明6 电脑游戏分享

《文明VI》呈现融入世界的新方式&#xff1a;城市现已在版图上扩充疆域&#xff0c;积极研究技术和文化可解锁新潜能&#xff0c;而相互竞争的领导者们也将根据其历史特质追寻自己的新议程&#xff0c;而你也将借助五种方式之一取得游戏的胜利。 系统需求 最低配置: 需要 64 …

自动打电话工具开发需要用到的源代码!

随着移动互联网的飞速发展&#xff0c;自动打电话工具的开发需求日益增加&#xff0c;这类工具能够为用户提供便捷的通信体验&#xff0c;节省时间成本&#xff0c;提高生活效率。 然而&#xff0c;要实现自动打电话的功能&#xff0c;并非易事&#xff0c;本文将科普自动打电…

效率飙升!用升级版思维导图搞定测试用例

Xmind思维导图&#xff1c;转&#xff1e;测试用例_如何将xmind改成测试用例-CSDN博客https://weiyv.blog.csdn.net/article/details/135920569 上一次的【xmind思维导图转测试用例】的文章浏览量飙升&#xff0c;这一次把工具又进行升级啦&#xff0c;是在线版的免费工具哦&am…

leetcode日记(42)螺旋矩阵

我使用的是递归&#xff0c;每次递归遍历一圈矩阵&#xff0c;将遍历结果塞进结果vector中&#xff0c;每次遍历修改上下左右边界&#xff0c;直至遍历后其中两边界重合或交错。 class Solution { public:vector<int> spiralOrder(vector<vector<int>>&…

Photoneo 3D 网格划分

Photoneo 3D 网格划分是一种多功能软件解决方案&#xff0c;专为快速、精确的 3D 模型而设计 从多个 3D 扫描或来自 Photoneo 3D 传感器的连续 3D 数据流创建。它 旨在实现适用于各种应用的高级 3D 数据采集&#xff0c;例如 机器人引导、质量检查和逆向工程。 它以两个单独的库…

HarmonyOS 开发者联盟高级认证最新题库

本篇文章包含 Next 版本更新后高级认证题库中95%的题目。 答案正确率 50-60%&#xff0c;答案仅做参考。 请在考试前重点看一遍题目&#xff0c;勿要盲目抄答案。 欢迎在评论留言正确答案和未整理的题目。 1、下面关于方舟字节码格式PREF_IMM16_v8_v8描述正确的是 16位前缀操作…

OSU!题解(概率dp)

题目&#xff1a;OSU! - 洛谷 思路&#xff1a; 设E()表示截止到i所获得的分数&#xff1b; 对于到i点的每一个l&#xff0c;如果第i1点为1&#xff0c;那么会新增分数3*l^23*l1; 就有递推公式方程&#xff1a; E()E()p[i1]p*(3*l^23*l1);(p代表截止到i获得长度l的概率)&a…

C++ :友元类

友元类的概念和使用 (1)将类A声明为B中的friend class后&#xff0c;则A中所有成员函数都成为类B的友元函数了 (2)代码实战&#xff1a;友元类的定义和使用友元类是单向的 (3)友元类是单向的&#xff0c;代码实战验证 互为友元类 (1)2个类可以互为友元类&#xff0c;代码实战…

刷题了:数组理论基础,704. 二分查找,27. 移除元素

学习记录&#xff0c;主要参考&#xff1a;代码随想录 数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组下标都是从0开始的 数组的元素是不能删的&#xff0c;只能覆盖。 704. 二分查找 要熟悉 根据 左闭右开&#xff0c;左闭右闭 两种区间规则 写出来…

Bubble Cup 13 - Finals [Online Mirror, unrated, Div. 2] --- G. Years (DSmap)

首先会想到树状数组或者差分&#xff0c;但是数据范围为1e9&#xff0c;所以不可取。 那么对于这道题就要用巧妙的方法。 我们可以看到题目也给出了一定的提示&#xff0c;输入的b和d代表了一个人的出生和死亡年份&#xff0c;那么也就是说&#xff0c;假如我们假设出眼前有一…

安全与加密常识(9)5分钟带你了解经常听到的cookie

文章目录 Cookie是什么Cookie有什么用Cookie的表示Cookie设置过程Cookie的生命周期 Cookie是什么 cookie的中文翻译是曲奇&#xff0c;小甜饼的意思。Cookie&#xff08;HTTP cookie&#xff09;是一种服务器存储在用户计算机上的小型数据文件&#xff0c;用于存储特定网站的用…