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

React:初识React

React是什么?

React是由Meta公司研发,也就是Facebook的公司(马克扎克伯格这个见人)研发的构建Web和原生交互界面的库

不仅可以写网页,还可以写苹果和安卓上面的app

React的优势:

React也是前端里最流行的一个框架

搭建环境

使用cra快速搭建开发环境,create-react-app是一个快速 创建React开发环境的工具,底层由Webpack构建,封装了配置细节,开箱即用

首先安装node.jsNode.js安装及环境配置超详细教程【Windows系统】_windows 安装nodejs-CSDN博客

# 安装 nvm(如果尚未安装)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
#输入这个命令记得翻墙# 重新加载 shell 配置
source ~/.bashrc  # 或者 source ~/.zshrc(如果你使用 zsh)# 安装最新版本的 Node.js
nvm install --lts# 或者安装特定版本(例如 v16)
nvm install 16# 设置默认版本
nvm alias default 16

node -v  # 应该显示 v14 或更高版本
npm -v   # 确保 npm 也更新到最新版本

安装完node.js创建一个react文件

npx create-react-app react-basic

这就代表好了!

好了

启动npm:

npm start

出现这个画面说明你的项目创建成功并且可以启动了

介绍项目

package.json是项目的包文件,里面包括了一些核心包

选中部分为本次项目它依赖的一些核心包

下面这俩是最最最核心的包

"react": "^19.0.0","react-dom": "^19.0.0",

下面这段包含的是可执行的命令,我们刚刚启动npm的命令就来自于这里

常用的命令有start和build,build负责打包

这是src,是我们的源码目录

打开index.js,对里面的文件做清理

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);

对App.js做清理

function App() {return (<div className="App">this is App</div>);
}export default App;

如果出现这个界面说明清理工作一切正常

index.js是整个项目的入口,下面框出来的是react依赖的两个核心包

这个id为root的节点在public里的index.html里

所以index.js做的事就是把这个项目的根组件以React的方式渲染到public文件里的这个位置上👆

App.js是一切项目的根基,组件是从这个地方往下发散的,它被引入到index.js里,然后渲染到了public里的index.html里叫root的div里

App->index.js->public/index.html(root)

后面的基础语法都在App.js里

JSX基础

概念和本质

JSX:JavaScript和XML(HTML)的缩写,表示在JS代码中编写HTML模版结构,它是React中编写

UI模版的方式
下图框出来的地方就是JSX,他书写的地方在函数的内部
优势(经典既要又要):
1. HTML的声明式模版写法 2. JS的可编程能力
JSX的本质
JSX并不是标准的JS语法,它是 JS的语法扩展 ,浏览器本身不能识别,需要通过 解析工具做解析 之后才能在浏览器中运行
JSX->babel解析->js函数
使用BABEL转化工具体验一下

高频场景

在JSX中可以通过 大括号语法{} 识别 JavaScript中的表达式,比如常见的变量、函数调用、方法调用等等
const count = 100
function getName() {return '荷叶饭'
}
function App() {return (<div className="App">this is App{//使用引号传递字符串'this is message'}{//识别JavaScript变量count}{//函数调用getName()}{//方法调用new Date().getDate()}{//使用js对象<div style={{ color: 'red' }}>this is div</div>}</div>);
}export default App;

只能写表达式,不能写语句(if语句、switch语句、变量声明属于语句,不是表达式,不能出现在{}中

eg:实现列表渲染

循环哪个结构就在App方法里return哪个结构:

key是React里提升框架性能的,独一无二,赋值为字符串或number id

const list = [{ id: 1001, name: 'Vue' },{ id: 1002, name: 'React' },{ id: 1003, name: 'Angular' }
]function App() {return (<div className="App">this is App<ul>{list.map(item => <li key={item.id}>{item.name}</li>)}</ul></div>);
}export default App;

愤怒

又好了嘻嘻

实现基础条件渲染

条件渲染就是根据条件进行渲染,有名字渲染名字,没名字渲染请登录

多种条件渲染的语法:在React中,可以通过逻辑与运算符&&(两种情况)、三元表达式(?:)(多种情况)实现基础的条件渲染

  • 逻辑与&&,短路运算符
  • 如果左侧的值为 true,则返回右侧的值。

  • 如果左侧的值为 false,则直接返回 false,不会计算右侧的值。

const isLogin=truefunction App() {return (<div className="App">this is App{/* 逻辑与&&,短路运算符 */}{isLogin&&<span>this is span</span>}</div>);
}export default App;

三元表达式不用多说

const isLogin=false
function App() {return (<div className="App">this is App{/* 逻辑与&&,短路运算符 */}{isLogin && <span>this is span</span>}{/* {三元表达式} */}{isLogin?<span>荷叶饭</span>:<span>loading...</span>}</div>);
}export default App;

一想到这个玩意在后盾人里的课可能两句话就带过去了我就想笑

实现复杂的条件渲染

复杂的就是当有多种情况需要渲染时,&&和三元表达式不能满足要求

比如新闻渲染的时候有的没有图片,有的一张图片,有的三张图片,单独写一个函数来处理

const articleType = 1//0,1,3
//定义核心函数:根据不同文章类型返回不同JSX模板
function getArticleTem() {if (articleType === 0) {return <div>我是无图文章</div>} else if (articleType === 1) {return <div>我是单图文章</div>} else {return <div>我是多图文章</div>}
}function App() {return (<div className="App">this is App{getArticleTem()}</div>);
}export default App;

React中的事件绑定

语法: on + 事件名称 = { 事件处理程序 } ,整体上遵循驼峰命名法
function App() {const handleClick = () => console.log('button被点击了')return (<div className="App"><button onClick={handleClick}>click me</button></div>);
}export default App;

当事件绑定需要获取事件对象e时, 语法:在事件回调函数中 设置形参e,和原生js是一样的
function App() {const handleClick = (e) => console.log('button被点击了e:',e)return (<div className="App"><button onClick={handleClick}>click me</button></div>);
}export default App;

可以获取事件对象捏

传递自定义参数:事件绑定的位置改造成箭头函数的写法,在执行clickHandler实际处理业务函数的时候传递实参

需要传递额外的参数,才需要使用箭头函数(如 onClick={() => handleClick('荷叶饭')})。

function App() {const handleClick = (name) => console.log('button被点击了name:',name)return (<div className="App"><button onClick={()=>handleClick('荷叶饭')}>click me</button>    </div>);
}
export default App;

这个箭头函数是必须的,如果写成onClick={handleClick('荷叶饭')}handleClick 函数会在渲染时立即执行,而不是在点击时执行,箭头函数可以延迟函数的执行,直到点击事件发生。

箭头函数的等价写法

<button onClick={function() { handleClick('荷叶饭'); }}>click me</button>

但是不简洁,更推荐箭头函数

如果我们既要有要,既要事件对象e,也要额外参数怎么解决?

箭头函数传参数给普通函数 函数再去接收参数

function App() {const handleClick = (name,e) => console.log('button被点击了name:',name,'e:',e)return (<div className="App"><button onClick={(e)=>handleClick('荷叶饭',e)}>click me</button>   </div>);
}export default App;

组件

概念:一个组件就是用户界面的一部分,它可以有自己的逻辑和外观,组件之间 可以互相嵌套,也可以复用多次

root是根组件,header是左边的灰块的上部分,main是左侧在主体区域,aside是右边的

main里重复的两块就是article*2,aside里重复的就是item*3

组件化开发可以让开发者像搭积木一样构建一个完整的庞大的应用

流程:定义组件->使用组件

在React中,一个组件就是首字母大写的函数,内部存放了组件的逻辑和视图UI, 渲染组件只需要把组件当成标签书写

即可

两种使用方法
//定义组件
function Button() {//组件内部逻辑return <button>click me!</button>
}function App() {// const handleClick = (name,e) => console.log('button被点击了name:',name,'e:',e)return (<div className="App">{/*使用组件(渲染组件)*/}{/*自闭和使用*/}<Button />{/*成对标签使用*/}<Button></Button></div>);
}export default App;

组件其实就是个函数,比较灵活,首字母大写,有两种使用方法:自闭和和成对标签,像标签一样灵活

useState基础使用

useState 是一个 React Hook(函数),它允许我们向组件添加一个状态变量(State), 从而控制影响组件的渲染结果

状态变量是 React 组件内部的一个特殊变量,用于存储组件的数据,当状态变量的值发生变化时,React 会自动重新渲染组件,以反映最新的数据

状态变量 和普通JS变量不同的是,状态变量一旦发生变化组件的视图UI 也会跟着变化 (数据驱动视图)
useState是React里的方法,返回的是个数组,数组里有两项:[状态变量,修改状态变量的方法]
只有用这个专门的修改状态变量的方法修改变量,才会在ui渲染里起效
//useState实现一个计数器按钮
import { useState } from 'react'
function App() {// const handleClick = (name,e) => console.log('button被点击了name:',name,'e:',e)//1、调用useState添加一个状态变量const [count, setCount] = useState(0)//2、点击事件回调const handleClick = () => { setCount(count+1) }return (<div className="App"><button onClick={handleClick}>{count}</button></div>);
}
export default App;

count++ 会直接修改 count 的值,而 React 的状态变量是不可变的(Immutable),不能直接修改。

那我就要问了:const handleClick = () => { setCount(count++) }这么写不也是通过setState 函数更新状态吗?为什么不行?

count++ 会先返回当前的值,再进行自增操作,而 React 的 setState 需要传入新的值,而不是修改原值。

那++count呢?++count 会先对 count 进行自增操作,然后返回自增后的值。这个操作会直接修改当前 count 的值,而 React 需要的是通过 setCount 来触发状态的更新,这就相当于状态变量的修改是你自己改的,不是通过对应的方法改的

正确的写法是应该直接传入 count + 1,而不是 count++,因为 count++ 只是修改了本地变量

对于对象来说也是这样,应该把新的对象写进对应方法,而不是直接修改
import { useState } from 'react'function App () {let [count, setCount] = useState(0)const handleClick = () => {// 直接修改 无法引发视图更新// count++// console.log(count)setCount(count + 1)}// 修改对象状态const [form, setForm] = useState({ name: 'jack' })const changeForm = () => {// 错误写法:直接修改// form.name = 'john'// 正确写法:setFrom 传入一个全新的对象setForm({...form,name: 'john'})}return (<div><button onClick={handleClick}>{count}</button><button onClick={changeForm}>修改form{form.name}</button></div>)
}export default App

相关文章:

React:初识React

React是什么&#xff1f; React是由Meta公司研发&#xff0c;也就是Facebook的公司&#xff08;马克扎克伯格这个见人&#xff09;研发的构建Web和原生交互界面的库 不仅可以写网页&#xff0c;还可以写苹果和安卓上面的app React的优势&#xff1a; React也是前端里最流行的…...

全面理解-c++中的内存布局

在 C 中&#xff0c;程序的内存布局指的是程序运行时&#xff0c;代码和数据在内存中的组织和分布方式。一般来说&#xff0c;C 程序的内存可以划分为以下几个主要区域&#xff1a; 1. 代码段&#xff08;Text Segment&#xff0c;也称为 .text 段&#xff09; 存储内容&…...

百度沈抖:传统云计算不再是主角,智能计算呼唤新一代“操作系统”

Create 2024 百度AI开发者大会 4月16日&#xff0c;Create 2024 百度AI开发者大会在深圳召开。期间&#xff0c;百度集团执行副总裁、百度智能云事业群总裁沈抖正式发布新一代智能计算操作系统——万源&#xff0c;通过对AI原生时代的智能计算平台进行抽象与封装设计&#xff…...

【银河麒麟高级服务器操作系统】服务器卡死后恢复系统日志丢失-分析及处理全过程

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://document.kylinos.cn 服务器环境以及配置 【机型】 处理器&#xff…...

VSCode Error Lens插件介绍(代码静态检查与提示工具)(vscode插件)

文章目录 VSCode Error Lens 插件介绍**功能概述****开发背景****使用方法****适用场景** VSCode Error Lens 插件介绍 功能概述 Error Lens 是一款增强 VS Code 错误提示的扩展工具&#xff0c;通过 内联显示错误和警告信息&#xff0c;直接定位代码问题&#xff0c;提升开发…...

ffmpeg configure 研究1-命令行参数的分析

author: hjjdebug date: 2025年 02月 14日 星期五 17:16:12 CST description: ffmpeg configure 研究1 ./configure 命令行参数的分析 文章目录 1 configure 对命令行参数的分析,在4019行1.1 函数名称: is_in1.2. 函数名称: enable1.3. 函数名称: set_all 2 执行退出判断的关键…...

如何调整 Nginx工作进程数以提升性能

&#x1f3e1;作者主页&#xff1a;点击&#xff01; Nginx-从零开始的服务器之旅专栏&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2025年2月15日14点20分 Nginx 的工作进程数&#xff0…...

分布式 NewSQL 数据库(TiDB)

TiDB 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议&#xff0c;具有数据强一致的高可用特性&#xff0c;是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。 TiDB是 PingCAP公司自主设计、研发的开源分布式关系型数据…...

try learning-git-branching

文章目录 mergerebase分离 HEAD相对引用利用父节点branch -f 撤销变更cherry-pick交互式 rebase只取一个提交记录提交的技巧rebase 在上一次提交上amendcherry-pick 在上一次提交上 amend tag多分支 rebase两个parent节点纠缠不清的分支偏离的提交历史锁定的Main推送主分支合并…...

【kafka系列】Kafka事务的实现原理

目录 1. 事务核心组件 1.1 幂等性生产者&#xff08;Idempotent Producer&#xff09; 1.2 事务协调器&#xff08;TransactionCoordinator&#xff09; 1.3 事务日志&#xff08;Transaction Log&#xff09; 2. 事务执行流程 2.1 事务初始化 2.2 发送消息 2.3 事务提…...

数据结构6

一、哈希散列--通讯录查找 #include "hash.h" #include <stdio.h> #include <stdlib.h> #include <string.h>//int *a[10];int hash_function(char key) {if (key > a && key < z){return key - a;}else if (key > A && …...

Flutter 的 Widget Key 提议大调整?深入聊一聊 Key 的作用

Flutter 的 Widget Key 提议大调整&#xff1f;深入聊一聊 Key 的作用 在 Flutter 里&#xff0c;Key 对象存在的目的主要是区分和维持 Widget 的状态&#xff0c;它是控件在渲染树里的「复用」标识之一&#xff0c;这一点在之前的《深入 Flutter 和 Compose 在 UI 渲染刷新时…...

src和href区别

src和href区别 (1)请求资源类型不同(2)作用结果不同(3)解析方式不同 (1)请求资源类型不同 href 用来建立文档和元素之间的链接(是引用),常用的有a、linksrc 在请求src资源时候会将指向的资源下载并且应用到文档中(引入),常用的有script、iframe、image。 (2)作用结果不同 hr…...

STM32之SG90舵机控制

目录 前言&#xff1a; 一、硬件准备与接线 1.1 硬件清单 1.2 接线 二、 SG90舵机简介 1.1 外观 1.2 基本参数 1.3 引脚说明 1.4 控制原理 1.5 特点 1.6 常见问题 三、 单片机简介 四、 程序设计 4.1 定时器配置 4.2 角度控制函数 4.3 主函数调用 五、 总结 …...

尚硅谷课程【笔记】——大数据之Hadoop【一】

课程视频链接&#xff1a;尚硅谷Hadoop3.x教程 一、大数据概论 1&#xff09;大数据概念 大数据&#xff08;Big Data&#xff09;&#xff1a;指无法再一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新处理模式才能具有更强的决策力、洞察发…...

QEMU 搭建 Ubuntu x86 虚拟机

1. 安装 QEMU 在 Ubuntu 系统中&#xff0c;可以通过以下命令安装 QEMU&#xff1a; sudo apt-get update sudo apt-get install qemu-system-x86_64 qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager2. 创建虚拟硬盘镜像 qemu-img create -f raw ubuntu…...

mac 意外退出移动硬盘后再次插入移动硬盘不显示怎么办

第一步&#xff1a;sudo ps aux | grep fsck 打开mac控制台输入如下指令&#xff0c;我们看到会出现两个进程&#xff0c;看进程是root的这个 sudo ps aux|grep fsck 第二步&#xff1a;杀死进程 在第一步基础上我们知道不显示u盘的进程是&#xff1a;62319&#xff0c;我们…...

Acwing-基础算法课笔记之基础算法(双指针)

Acwing-基础算法课笔记之基础算法&#xff08;双指针&#xff09; 一、双指针算法概念二、关于双指针的一个问题三、模板 一、双指针算法概念 双指针&#xff08;又称尺取法&#xff09;是一个常用的优化技巧&#xff0c;用来解决序列的区间问题。 两个指针i&#xff0c;j&am…...

PCIE基础学习

PCIE PIO模式&#xff1a; 一个CPU传输一个32bit给PCIE&#xff08;IP&#xff09;。CPU直接与PCIE做数据传输。 DMA模式&#xff1a; CPU通过PCIE bridge 与多个PCIE设备连接&#xff0c;CPU发送命令给桥&#xff0c;桥控制PCIE与memory直接数据连接。 tlp报文 读报文 …...

架构——Nginx功能、职责、原理、配置示例、应用场景

以下是关于 Nginx 的功能、职责、原理、配置示例、应用场景及其高性能原因的详细说明&#xff1a; 一、Nginx 的核心功能 1. 静态资源服务 功能&#xff1a;直接返回静态文件&#xff08;如 HTML、CSS、JS、图片、视频等&#xff09;。配置示例&#xff1a;server {listen 80…...

【教程】比亚迪车机接入AI大模型语音助手

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 更新说明&#xff1a; v1.1.0.2 1、新增长按音量键触发&#xff0c;不再需要迪加 (需设置modelisten)。 2、新增kimi、豆包、ChatGPT等多个GPT接口。 3…...

ios中常见的设计原则和设计模式

七大设计原则 1&#xff1a;开闭原则 对扩展开放&#xff0c;对修改关闭&#xff0c;在设计模块的时候&#xff0c;使模块在不被修改的前提下可以扩展功能 2:依赖倒置原则 实现尽量依赖抽象&#xff0c;不依赖具体实现 &#xff08;1&#xff09;高层模块不应该依赖底层模…...

WSL Ubuntu 安装 CUDA 教程

WSL Ubuntu 安装 CUDA 教程 1. 概述2. 准备工作3. 删除旧的 GPG 密钥4. 安装 CUDA Toolkit4.1 使用 WSL-Ubuntu 包安装&#xff08;推荐&#xff09; 5. 设置环境变量6. 注意事项7. 参考链接8. 总结 1. 概述 随着 WSL 2 的推出&#xff0c;Windows 用户现在可以在 Windows 子系…...

案例-02.部门管理-查询

一.查询部门-需求 二.查询部门-思路 API接口文档 三.代码实现 1.controller层&#xff1a;负责与前端进行交互&#xff0c;接收前端所发来的请求 注&#xff1a;Slf4j用于记录日志使用&#xff0c;可以省略private static Logger log LoggerFactory.getLogger(DeptControlle…...

【ARM】解决ArmDS Fast Models 中部分内核无法上电的问题

1、 文档目标 解决ArmDS Fast Models 中部分内核无法上电的问题。 2、 问题场景 在调用ArmDS的Fast Models中的Cortex-A55的模型&#xff0c;只有Core 0是上电状态&#xff0c;而Core 1处于掉电状态&#xff0c;如图2-1所示&#xff1a; 图2-1 3、软硬件环境 1&#xff09;…...

docker 基础命令使用(ubuntu)

docker 状态查询 docker ps docker ps -adocker --version docker info docker --help docker run --help docker ps --help ...docker 操作镜像命令 docker imagesdocker rmi 镜像id/镜像名docker 操作容器命令 docker ps docker ps -adocker run 命令 # 端口映射 -p 参数…...

WEB安全--SQL注入--二次注入

一、原理&#xff1a; 二次注入的关键在于攻击者的输入并不立即执行&#xff0c;而是经过某些存储或处理后&#xff0c;在后续某个步骤中再触发注入攻击 二、示例&#xff1a; 2.1、sqli-labs-master/less-24&#xff1a; admin# 第一次在网页注册账号和密码时没有漏洞&#x…...

c++中什么时候应该使用final关键字?

在C中&#xff0c;final关键字是自C11标准引入的重要特性&#xff0c;主要用于类继承和虚函数重写机制的约束。下面从技术原理、使用场景和最佳实践三个维度进行系统分析&#xff0c;并给出工业级代码示例。 目录 一、技术原理深度解析 二、关键使用场景分析 1. 类级别的fi…...

DeepSeek学术秘籍:如何让DeepSeek辅助论证?

随着人工智能技术的飞速发展&#xff0c;AIGC技术在学术领域的应用逐渐引起了广泛关注。其中最近大火的DeepSeek作为一款基于大语言模型的应用&#xff0c;其出现标志着学术论文写作中研究方法的一次重大变革。 辅助论证 在学术论文写作中&#xff0c;借助DeepSeek优化辅助论证…...

Atlassian工具集:Jira与Confluence集成优势、使用技巧、更新功能等

本文由Atlassian全球白金合作伙伴-龙智翻译整理&#xff0c;深入探讨了Jira和Confluence最受欢迎的集成功能与技巧&#xff0c;期待为您新一年的团队协作开个好头。 此前&#xff0c;来自K15t 的Customer Advocate Matt Reiner 和Atlassian副产品经理David Olive在一场学习会议…...

传输层协议TCP ( 下 )

文章目录 前言序号与确认序号超时重传RTOJacobson算法内核中超时时间的计算 滑动窗口滑动窗口延迟应答流量控制 拥塞控制慢启动拥塞避免快重传快速恢复 保活机制参考资料 前言 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是互联网最重要…...

【Deepseek 零门槛指南】DeepSeek 教程和常见问题解答 | 大白技术控

粉丝朋友们大家好&#xff0c;我是极客学长。最近一直在玩 DeepSeek&#xff0c;积累了一点经验&#xff0c;用它提高写作的效率挺好用的。 在使用DeepSeek的过程中&#xff0c;也遇到了如下几个问题(相信很多小伙伴也遇到了)&#xff1a; DeepSeek 官网卡顿&#xff0c;突然出…...

ELK组成及实现原理

ELK是由三个主要组件组成的日志处理和搜索平台&#xff0c;分别是&#xff1a; Elasticsearch&#xff1a;Elasticsearch 是一个基于Lucene构建的开源搜索引擎&#xff0c;提供强大的搜索、分析功能。它负责存储和索引所有数据&#xff0c;并提供实时搜索能力。数据可以通过HTT…...

迅为RK3568开发板篇OpenHarmony实操HDF驱动配置LED-LED测试

将编译好的镜像全部进行烧写&#xff0c;镜像在源码根目录 out/rk3568/packages/phone/images/目录下。 烧写完成之后&#xff0c;在调试串口查看打印日志&#xff0c;如下图所示&#xff1a; 然后打开 hdc 工具&#xff0c;运行测试程序&#xff0c;输入“led_test 1”&…...

【C++】IO流

目录 一、C语言的输入与输出二、流是什么三、CIO流3.1 C标准IO流3.2 C文件IO流3.2.1 二进制读写3.2.2 文本读写 四、stringstream的简单介绍结尾 一、C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据…...

前端知识速记--css篇:CSS3中的常见动画及实现方式

前端知识速记–css篇&#xff1a;CSS3中的常见动画及实现方式 常见的CSS3动画 1. 过渡 (Transitions) 过渡是一种非常简单的动画效果&#xff0c;允许你在元素的状态变更时平滑过渡到新状态。 语法格式&#xff1a; transition: property duration timing-function delay;…...

一个根据输入内容过滤下拉选的组件

1.element的select自定义过滤不是很灵&#xff0c;使用了input和dropdown 组件 <template><div class"autocomplete-wrapper"><!-- 使用 el-input 组件 --><el-inputv-model"inputValue"input"handleInput"placeholder&q…...

Java中的分布式(概念说明)

1. 分布式的基本概念 1.1 什么是分布式系统&#xff1f; 分布式系统&#xff08;Distributed System&#xff09;&#xff1a;由多台服务器&#xff08;或节点&#xff09;协同工作&#xff0c;对外提供一个整体服务。不同节点之间通过网络通信来协同处理请求或共享数据&…...

国产编辑器EverEdit - 上下翻滚不迷路(历史编辑位置、历史光标位置回溯功能)

1 光标位置跳转 1.1 应用场景 某些场景下&#xff0c;用户从当前编辑位置跳转到别的位置查阅信息&#xff0c;如果要快速跳转回之前编辑位置&#xff0c;则可以使用光标跳转相关功能。 1.2 使用方法 1.2.1 上一个编辑位置 跳转到上一个编辑位置&#xff0c;即文本修改过的位…...

css简介

一.css-网页的美容师 css也是一种标记语言&#xff0c;主要用于设置HTML页面中的文本内容(字体大小对齐方式)&#xff0c;图片外形&#xff08;宽高 边框样式 边距等&#xff09;以及版面的布局和外观显示样式。 二.css语法规范 css规则由两个主要的部分构成:选择器以及一条…...

GoC题解(21) 725.画迷宫(下册第4课)

题目描述 真观察下面迷宫图。发现它是一个边长逐渐变长的15边回旋图&#xff0c;边长依次为10、20、30....。 参考答案 int main(){int len0;for(int i1;i<15;i){ len10;pen.fd(len).rt(90); }return 0; } 解题思路 使用一个变量来记录每次循环时应该画多长的边&#…...

DDD该怎么去落地实现(3)通用的仓库和工厂

通用的仓库和工厂 我有一个梦&#xff0c;就是希望DDD能够成为今后软件研发的主流&#xff0c;越来越多研发团队都转型DDD&#xff0c;采用DDD的设计思想和方法&#xff0c;设计开发软件系统。这个梦想在不久的将来是有可能达成的&#xff0c;因为DDD是软件复杂性的解决之道&a…...

sql sqlserver的特殊函数COALESCE和PIVOT的用法分析

一、COALESCE是一个返回参数中第一个非NULL值的函数&#xff0c; 列如&#xff1a;COALESCE&#xff08;a,b,c,d,e&#xff09;;可以按照顺序取abcde&#xff0c;中的第一个非空数据&#xff0c;abcde可以是表达式 用case when 加ISNULL也可以实现&#xff0c;但是写法复杂了…...

FPGA简介|结构、组成和应用

Field Programmable Gate Arrays&#xff08;FPGA&#xff0c;现场可编程逻辑门阵列&#xff09;&#xff0c;是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物&#xff0c; 是作为专用集成电路&#xff08;ASIC&#xff09;领域中的一种半定制电路而出现的&#xff0c…...

Vue2/Vue3生命周期对比

Vue2的生命周期钩子 beforeCreate 在实例初始化之后&#xff0c;数据观测&#xff08;data&#xff09;和事件配置之前调用。此时无法访问 data、methods 等。 created 在实例创建完成后调用。此时可以访问 data、methods&#xff0c;但 DOM 还未生成。 beforeMount 在挂载…...

Spring Boot 携手 DeepSeek:开启智能交互新时代

前言 在当今数字化浪潮汹涌澎湃的时代,人工智能技术正以前所未有的速度改变着我们的生活和工作方式。大语言模型作为人工智能领域的一颗璀璨明星,凭借其强大的自然语言处理能力,为各个行业带来了新的发展机遇。DeepSeek 作为一款性能卓越的大语言模型,以其高效、准确的文本…...

【Elasticsearch】Mapping概述

以下是Elasticsearch中提到的关于Mapping的各模块概述&#xff1a; --- 1.Dynamic mapping&#xff08;动态映射&#xff09; 动态映射是指Elasticsearch在索引文档时&#xff0c;自动检测字段类型并创建字段映射的过程。当你首次索引一个文档时&#xff0c;Elasticsearch会根…...

国内Ubuntu离线安装和配置Ollama服务

以下是在 Ubuntu 22.04 系统上&#xff0c;安装Ollama 的完整安装和配置步骤&#xff1a; 1. 准备工作 确保你具备 root 权限&#xff0c;并安装了必要的工具&#xff0c;如 tar、systemctl 等。 2. 创建 Ollama 用户和组 创建一个专门的 ollama 用户和组来运行 Ollama 服务…...

极狐GitLab 17.8 正式发布,多项 DevOps 重点功能解读【二】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…...

【开源免费】基于Vue和SpringBoot的旅游管理系统(附论文)

本文项目编号 T 229 &#xff0c;文末自助获取源码 \color{red}{T229&#xff0c;文末自助获取源码} T229&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...