当前位置: 首页 > article >正文

Vue笔记(十)

一、AI的基本认知

二、ChatGPT的基本使用

三、AI插件--Copilot入门

 1.Copilot是由OpenAI和GitHub合作开发的AI编程辅助插件,基于大量代码训练,能根据上下文自动生成代码建议。
2.安装与配置:在常用代码编辑器(如Visual Studio Code)的插件市场搜索“Copilot”进行安装;安装后可能需登录GitHub账号完成授权配置,以激活使用权限。
基本使用方法:在编辑器中输入代码时,Copilot会实时分析上下文,以灰色字体显示代码补全建议,按Tab键可快速插入;支持多种编程语言,在不同语言项目中都能依据语法和常见代码模式给出合适建议。
3.在Vue开发中的应用:在Vue组件中,能快速生成模板代码、数据定义、方法声明等;比如创建新Vue组件时,自动生成 <template> 、 <script> 、 <style> 标签结构,甚至根据功能描述生成特定业务逻辑代码。

<template><div><!-- 这里是组件内容 --></div>
</template>输入 <script> ,可能补全为:<script>
export default {data() {return {// 数据属性};},methods: {// 方法定义}
};
</script>

 

<script>
import axios from 'axios';
export default {data() {return {userList: []};},methods: {async getUserList() {try {const response = await axios.get('/api/users');this.userList = response.data;} catch (error) {console.error('获取用户列表失败', error);}}}
};
</script>

四、个人中心

(一)基本资料

<template><div class="user-profile"><img :src="userInfo.avatarUrl" alt="头像" class="avatar"><div class="info-section"><p>昵称:{{ userInfo.nickname }}</p><p>性别:{{ userInfo.gender }}</p><p>联系方式:{{ userInfo.contact }}</p><button @click="editProfile">编辑</button></div></div>
</template>
<script>
export default {data() {return {userInfo: {}};},created() {this.fetchUserInfo();},methods: {async fetchUserInfo() {try {// 假设使用axios进行数据请求const response = await axios.get('/api/user/profile');this.userInfo = response.data;} catch (error) {console.error('获取用户信息失败', error);}},editProfile() {// 这里可以添加逻辑,如跳转到编辑页面或切换到编辑状态console.log('进入编辑模式');}}
};
</script>
.user-profile {display: flex;align-items: center;padding: 20px;
}
.avatar {width: 80px;height: 80px;border-radius: 50%;margin-right: 20px;
}
.info-section {flex: 1;
}
button {margin-top: 10px;padding: 5px 10px;background-color: #1e90ff;color: white;border: none;border-radius: 3px;cursor: pointer;
}

 

(二)更换头像--静态布局

<template><div class="avatar-change-page"><!-- 头部区域 --><div class="header"><button @click="goBack">返回</button><h2>更换头像</h2></div><!-- 主体区域 --><div class="main"><div class="current-avatar"><img :src="currentAvatarUrl" alt="当前头像"></div><div class="upload-section"><input type="file" @change="handleFileChange" accept="image/*"><button @click="uploadAvatar">上传头像</button></div></div><!-- 底部区域 --><div class="footer"><button @click="saveChanges">保存</button><button @click="cancelChanges">取消</button></div></div>
</template>
<script>
export default {data() {return {currentAvatarUrl: 'default-avatar-url.jpg', // 当前头像的URL,需根据实际获取selectedFile: null // 选择的新头像文件};},methods: {goBack() {// 实现返回上一页的逻辑,可能是路由跳转console.log('返回上一页');},handleFileChange(event) {this.selectedFile = event.target.files[0];},uploadAvatar() {if (this.selectedFile) {// 实现上传头像到服务器的逻辑console.log('上传头像', this.selectedFile);}},saveChanges() {// 保存更换头像的操作,可能涉及向服务器发送请求console.log('保存更改');},cancelChanges() {// 取消更换头像操作,可能恢复原来的头像console.log('取消更改');}}
};
</script>
.avatar-change-page {display: flex;flex-direction: column;height: 100vh;.header {display: flex;align-items: center;padding: 10px;background-color: #f0f0f0;button {background: none;border: none;font-size: 16px;cursor: pointer;}h2 {flex: 1;text-align: center;margin: 0;}}.main {flex: 1;display: flex;flex-direction: column;align-items: center;justify-content: center;.current-avatar {width: 150px;height: 150px;border-radius: 50%;overflow: hidden;margin-bottom: 20px;img {width: 100%;height: 100%;object-fit: cover;}}.upload-section {display: flex;flex-direction: column;align-items: center;input[type="file"] {margin-bottom: 10px;}button {background-color: #1e90ff;color: white;border: none;padding: 8px 16px;border-radius: 4px;cursor: pointer;}}}.footer {display: flex;justify-content: space-around;padding: 10px;background-color: #f0f0f0;button {background-color: #1e90ff;color: white;border: none;padding: 8px 16px;border-radius: 4px;cursor: pointer;}}
}

 

(三)预览和上传头像

 1.头像预览:利用FileReader对象读取选择的图片文件,将其转换为Data URL格式,从而在页面上实现头像的实时预览。这样用户在上传前就能确认所选图片是否正确。
 
2.上传头像:涉及与后端服务器的交互,通常会使用FormData对象来组装包含图片文件的表单数据,并通过HTTP请求(如POST方法)将数据发送到服务器指定的接口。服务器接收到数据后进行处理和存储。
 
3.错误处理:在预览和上传过程中,可能会遇到各种错误,如文件格式不支持、网络连接问题、服务器响应错误等。需要了解如何在前端捕获这些错误,并给用户提供友好的提示信息。

<template><div><input type="file" @change="handleFileSelect"><img v-if="previewUrl" :src="previewUrl" alt="头像预览"><button @click="uploadAvatar">上传头像</button></div>
</template><script>
export default {data() {return {previewUrl: null,selectedFile: null};},methods: {handleFileSelect(event) {const file = event.target.files[0];if (file) {this.selectedFile = file;const reader = new FileReader();reader.onload = (e) => {this.previewUrl = e.target.result;};reader.readAsDataURL(file);}},async uploadAvatar() {if (!this.selectedFile) {console.log('请先选择图片');return;}const formData = new FormData();formData.append('avatar', this.selectedFile);try {// 假设使用axios库发送请求const response = await axios.post('/api/upload-avatar', formData, {headers: {'Content-Type':'multipart/form-data'}});if (response.status === 200) {console.log('头像上传成功');// 可在此处添加更新本地头像显示或通知服务器更新用户头像信息的逻辑}} catch (error) {console.error('头像上传失败', error);// 根据错误类型给用户不同提示,如网络问题、服务器错误等}}}
};
</script>

(四)重置密码

在Vue组件中,HTML部分构建重置密码的表单结构,包含旧密码、新密码、确认新密码的输入框及提交按钮。CSS用于美化表单样式,增强用户体验。JavaScript则处理表单提交事件,验证密码格式,调用后端API传递数据,如使用 fetch 或 axios 库发起HTTP请求

<template><div><form @submit.prevent="resetPassword"><label for="oldPassword">旧密码:</label><input type="password" id="oldPassword" v-model="oldPassword" required><label for="newPassword">新密码:</label><input type="password" id="newPassword" v-model="newPassword" required minlength="8"><label for="confirmPassword">确认新密码:</label><input type="password" id="confirmPassword" v-model="confirmPassword" required><button type="submit">重置密码</button></form></div>
</template><script>
import axios from 'axios';export default {data() {return {oldPassword: '',newPassword: '',confirmPassword: ''};},methods: {async resetPassword() {if (this.newPassword!== this.confirmPassword) {alert('两次输入的新密码不一致');return;}try {const response = await axios.post('/api/resetPassword', {oldPassword: this.oldPassword,newPassword: this.newPassword});if (response.data.success) {alert('密码重置成功');} else {alert('密码重置失败,请检查旧密码是否正确');}} catch (error) {console.error('重置密码时出错:', error);alert('网络错误,请稍后重试');}}}
};
</script><style scoped>
form {display: flex;flex-direction: column;
}
label {margin-top: 10px;
}
input {margin-top: 5px;padding: 5px;
}
button {margin-top: 10px;padding: 5px 10px;
}
</style>

相关文章:

Vue笔记(十)

一、AI的基本认知 二、ChatGPT的基本使用 三、AI插件--Copilot入门 1.Copilot是由OpenAI和GitHub合作开发的AI编程辅助插件&#xff0c;基于大量代码训练&#xff0c;能根据上下文自动生成代码建议。 2.安装与配置&#xff1a;在常用代码编辑器&#xff08;如Visual Studio Cod…...

Ubuntu下载安装Docker-Desktop

下载 Ubuntu | Docker Docs 预备工作 Ubuntu增加docker apt库-CSDN博客 安装 sudo apt-get updatesudo apt install gnome-terminal# sudo apt install -y docker-composesudo apt-get install ./docker-desktop-amd64.deb 测试 sudo docker run hello-worldHello from D…...

DeepSeek 突然来袭,AI 大模型变革的危机与转机藏在哪?

随着人工智能技术的飞速发展&#xff0c;大模型领域不断涌现出具有创新性的成果。DeepSeek 的横空出世&#xff0c;为 AI 大模型领域带来了新的变革浪潮。本文将深入探讨 DeepSeek 出现后 AI 大模型面临的危机与转机。 冲冲冲&#xff01;&#xff01;&#xff01; 目录 一、…...

C#运动控制——轴IO映射

1、IO映射的作用 该功能允许用户对专用 IO 信号的硬件输入接口进行任意配置&#xff0c;比如轴的急停信号&#xff0c;通过映射以后&#xff0c;可以将所有轴的急停信号映射到某一个IO输入口上&#xff0c;这样&#xff0c;我们只要让一个IO信号有效就可以触发所有轴的急停。 进…...

ArrayList、LinkedList、HashMap、HashTable、HashSet、TreeSet

集合族谱 在这些集合中&#xff0c;仅有vector和hashtable是线程安全的&#xff0c;其内部方法基本都有synchronized修饰。 ArrayList 底层采用Object数组实现&#xff0c;实现了RandomAccess接口因此支持随机访问。插入删除操作效率慢。 ArrayList需要一份连续的内存空间。 A…...

DeepSeek 指导手册(入门到精通)

第⼀章&#xff1a;准备篇&#xff08;三分钟上手&#xff09;1.1 三分钟创建你的 AI 伙伴1.2 认识你的 AI 控制台 第二章&#xff1a;基础对话篇&#xff08;像交朋友⼀样学交流&#xff09;2.1 有效提问的五个黄金法则2.2 新手必学魔法指令 第三章&#xff1a;效率飞跃篇&…...

window 11 鼠标右键切换回经典模式

window 11 鼠标右键切换回经典模式 在换新电脑&#xff0c;更新到 window 11 后&#xff0c;鼠标右键很不习惯&#xff0c;把很多功能都隐藏到最后一个打开更多模块了&#xff0c;删除以及刷新等操作也不能使用右键字母快捷操作。 恢复window 11 右键菜单到经典模式 方法一&am…...

RabbitMQ 延迟队列

1.延迟队列插件安装(版本号要对其&#xff09; Releases rabbitmq/rabbitmq-delayed-message-exchange GitHub 下载的文件: rabbitmq_delayed_message_exchange-3.13.0.ez 直接复制到以下文件夹&#xff1a; \RabbitMQ Server\rabbitmq_server-3.13.7\plugins\ 执行命令…...

Unity3D 类MOBA角色控制器 开箱即用

Github: Unity3D-MOBA-Character-Controller 觉得好用麻烦点个Star感谢&#xff01;...

认识一下redis的分布式锁

Redis的分布式锁是一种通过Redis实现的分布式锁机制&#xff0c;用于在分布式系统中确保同一时刻只有一个客户端可以访问某个资源。它通常用于防止多个应用实例在同一时间执行某些特定操作&#xff0c;避免数据的不一致性或竞争条件。 实现分布式锁的基本思路&#xff1a; 1. …...

【CXX】0 Rust与C ++的互操作利器:CXX库介绍与示例

CXX库是一个非常强大的工具&#xff0c;它使得Rust和C之间的互操作性变得既安全又高效。本专栏将展示如何使用CXX库来桥接Rust和C代码&#xff0c;同时保持两者语言的特性和惯用法。 一、关键概念 类型安全&#xff1a;CXX库通过静态分析类型和函数签名来保护Rust和C的不变量…...

2024 CyberHost 语音+图像-视频

项目&#xff1a;CyberHost: Taming Audio-driven Avatar Diffusion Model with Region Codebook Attention 音频驱动的身体动画面临两个主要挑战&#xff1a;&#xff08;1&#xff09;关键人体部位&#xff0c;如面部和手部&#xff0c;在视频帧中所占比例较小&#x…...

企业文件安全:零信任架构下的文件访问控制

在企业数字化转型的进程中&#xff0c;传统的文件访问控制模型已难以满足日益复杂的网络安全需求。零信任架构作为一种新兴的安全理念&#xff0c;为企业的文件安全访问提供了全新的解决方案。 一、传统文件访问控制的局限性 传统的文件访问控制主要基于网络边界&#xff0c;…...

Rasa学习笔记

一、CALM 三个关键要素&#xff1a; 业务逻辑&#xff1a;Flow&#xff0c;描述了AI助手可以处理的业务流程对话理解&#xff1a;旨在解释最终用户与助手沟通的内容。此过程涉及生成反映用户意图的命令&#xff0c;与业务逻辑和正在进行的对话的上下文保持一致。自动对话修复…...

list_for_each_entry_safe 简介

list_for_each_entry_safe 是 Linux 内核中用于遍历链表的一个宏&#xff0c;特别适用于在遍历过程中可能需要删除链表节点的场景。它的设计保证了在删除当前节点时&#xff0c;不会影响后续节点的访问&#xff0c;从而实现安全的遍历。 定义 #define list_for_each_entry_sa…...

Android 系统面试问题

一.android gki和非gki的区别 Android GKI&#xff08;Generic Kernel Image&#xff09;和非GKI内核的主要区别在于内核设计和模块化程度&#xff0c;具体如下&#xff1a; 1. 内核设计 GKI&#xff1a;采用通用内核设计&#xff0c;与设备硬件分离&#xff0c;核心功能统一…...

【面试集锦】如何设计SSO方案?和OAuth有什么区别?

如何设计SSO方案?和OAuth有什么区别?--楼兰 带你聊最纯粹的Java ​ 如果面试问你,你会做一个权限系统吗?那你肯定会说做过。不就是各种登录、验证吗。我做的第一个CRUD应用就是注册、登录。简单!但是,如果问你在工作中真的做过权限系统吗?其实很多人都只能默默摇摇头。因…...

二十六、使用docsify搭建文档管理平台

特性 无需构建,写完文档直接发布容易使用并且轻量 (~19kB gzipped)智能的全文搜索提供多套主题丰富的 API...

bitcoinjs学习1—P2PKH

1. 概述 在本学习笔记中&#xff0c;我们将深入探讨如何使用 bitcoinjs-lib 库构建和签名一个 P2PKH&#xff08;Pay-to-PubKey-Hash&#xff09; 比特币交易。P2PKH 是比特币网络中最常见和最基本的交易类型之一&#xff0c;理解其工作原理是掌握比特币交易构建的关键。 想要详…...

如何在 Java 应用中实现数据库的主从复制(读写分离)?请简要描述架构和关键代码实现?

在Java应用中实现数据库主从复制&#xff08;读写分离&#xff09; 一、架构描述 &#xff08;一&#xff09;整体架构 主库&#xff08;Master&#xff09; 负责处理所有的写操作&#xff08;INSERT、UPDATE、DELETE等&#xff09;。它是数据的源头&#xff0c;所有的数据变…...

【pytest】获取所有用例名称并存于数据库

数据库操作包&#xff0c;引用前面创建的py文件&#xff0c;【sqlite】python操作sqlite3&#xff08;含测试&#xff09; #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2025-02-11 8:45 # Author : duxiaowei # File : get_filename.py # Software: 这个文…...

【论文笔记】Are Self-Attentions Effective for Time Series Forecasting? (NeurIPS 2024)

官方代码https://github.com/dongbeank/CATS Abstract 时间序列预测在多领域极为关键&#xff0c;Transformer 虽推进了该领域发展&#xff0c;但有效性尚存争议&#xff0c;有研究表明简单线性模型有时表现更优。本文聚焦于自注意力机制在时间序列预测中的作用&#xff0c;提…...

maven导入spring框架

在eclipse导入maven项目&#xff0c; 在pom.xml文件中加入以下内容 junit junit 3.8.1 test org.springframework spring-core ${org.springframework.version} org.springframework spring-beans ${org.springframework.version} org.springframework spring-context ${org.s…...

AUTOGPT:基于GPT模型开发的实验性开源应用程序; 目标设定与分解 ;;自主思考与决策 ;;信息交互与执行

目录 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序目标设定与分解自主思考与决策信息交互与执行AUTOGPT是一款基于GPT模型开发的实验性开源应用程序 目标设定与分解 自主思考与决策 信息交互与执行 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序,它能让大语言模…...

瑞芯微开发板/主板Android调试串口配置为普通串口方法 深圳触觉智能科技分享

本文介绍瑞芯微开发板/主板Android调试串口配置为普通串口方法&#xff0c;不同板型找到对应文件修改&#xff0c;修改的方法相通。触觉智能RK3562开发板演示&#xff0c;搭载4核A53处理器&#xff0c;主频高达2.0GHz&#xff1b;内置独立1Tops算力NPU&#xff0c;可应用于物联…...

Redis 数据类型 Hash 哈希

在 Redis 中&#xff0c;哈希类型是指值本⾝⼜是⼀个键值对结构&#xff0c;形如 key "key"&#xff0c;value { { field1, value1 }, ..., {fieldN, valueN } }&#xff0c;Redis String 和 Hash 类型⼆者的关系可以⽤下图来表⽰。 Hash 数据类型的特点 键值对集合…...

IntelliJ IDEA 2024.1.4版无Tomcat配置

IntelliJ IDEA 2024.1.4 (Ultimate Edition) 安装完成后&#xff0c;调试项目发现找不到Tomcat服务&#xff1a; 按照常规操作添加&#xff0c;发现服务插件中没有Tomcat。。。 解决方法 1、找到IDE设置窗口 2、点击Plugins按钮&#xff0c;进入插件窗口&#xff0c;搜索T…...

连锁收银系统的核心架构与技术选型

在连锁门店的日常运营里&#xff0c;连锁收银系统扮演着极为重要的角色&#xff0c;它不仅承担着交易结算的基础任务&#xff0c;还关联着库存管理、会员服务、数据分析等多个关键环节。一套设计精良的核心架构与合理的技术选型&#xff0c;是保障收银系统高效、稳定运行的基础…...

CSS 小技巧 —— CSS 实现 Tooltip 功能-鼠标 hover 之后出现弹层

CSS 小技巧 —— CSS 实现 Tooltip 功能-鼠标 hover 之后出现弹层 1. 两个元素实现 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>纯 CSS 实现 Tooltip 功能-鼠标 hover 之后出现弹层</titl…...

19.4.2 -19.4.4 新增、修改、删除数据

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 需要北风数据库的请留言自己的信箱。 19.4.2 新增数据 数据库数据的新增、修改和删除不同于查询&#xff0c;查询需要返回一个DbD…...