二、vue指令

1、v-bind

⽬标 : 给标签属性设置 vue 变量的值
vue 指令 , 实质上就是特殊的 html 标签属性 , 特点 : v- 开头
每个指令 , 都有独⽴的作⽤
语法 v-bind:属性名="vue变量"
简写 : 属性名="vue变量"
<!-- vue 指令 -v-bind 属性动态赋值 -->
<a v-bind:href = "url" > 我是 a 标签 </a>
<img :src = "imgSrc" >
总结 : vue 变量的值 , 赋予给 dom 属性上 , 影响标签显⽰效果

2、v-on

⽬标 : 给标签绑定事件
语法
v-on: 事件名 =" 要执⾏的 == 少量代码 =="
v-on: 事件名 ="methods 中的函数 "
<!-- vue 指令 -v-bind 属性动态赋值 -->
<a v-bind:href = "url" > 我是 a 标签 </a>
<img :src = "imgSrc" > v-on: 事件名 ="methods 中的函数 ( 实参 )"
简写 : @ 事件名 ="methods 中的函数 "
<!-- vue 指令 : v-on 事件绑定 -->
<p> 你要买商品的数量 : {{count}} </p>
<button v-on:click = "count = count + 1" > 增加 1 </button>
<button v-on:click = "addFn" > 增加 1 </button>
<button v-on:click = "addCountFn(5)" > ⼀次加 5 </button>
<button @click = "subFn" > 减少 </button>
<script>
export default {
// ... 其他省略
methods : {
addFn (){ // this 代表 export default 后⾯的组件对象 ( 下属有 data return 出来的属性 )
this . count ++
},
addCountFn ( num ){
this . count += num
},
subFn (){
this . count --
}
}
}
</script>
总结 : 常⽤ @ 事件名 , dom 标签绑定事件 , 以及 = 右侧事件处理函数

3、v-on事件对象

⽬标 : vue 事件处理函数中 , 拿到事件对象
语法:
⽆传参 , 通过形参直接接收
传参 , 通过 $event 指代事件对象传给事件处理函数
<!-- vue 指令 : v-on 事件绑定 -->
<p> 你要买商品的数量 : {{count}} </p>
<button v-on:click = "count = count + 1" > 增加 1 </button>
<button v-on:click = "addFn" > 增加 1 </button>
<button v-on:click = "addCountFn(5)" > ⼀次加 5 </button>
<button @click = "subFn" > 减少 </button>
<script>
export default {
// ... 其他省略
methods : {
addFn (){ // this 代表 export default 后⾯的组件对象 ( 下属有 data return 出来的属性 )
this . count ++
},
addCountFn ( num ){
this . count += num
},
subFn (){
this . count --
}
}
}
</script>
<template>
<div>
<a @click = "one" href = "http://www.baidu.com" > 阻⽌百度 </a>
<hr>
<a @click = "two(10, $event)" href = "http://www.baidu.com" > 阻⽌去百度 </a>
</div>
</template>
<script>
export default
methods : {
one ( e ){
e . preventDefault ()
},
two ( num , e ){
e . preventDefault ()
}
}
}
</script>

4、vue指令-v-on修饰符

⽬的: 在事件后⾯ . 修饰符名 - 给事件带来更强⼤的功能
语法:
@ 事件名 . 修饰符 ="methods ⾥函数 "
.stop - 阻⽌事件冒泡
.prevent - 阻⽌默认⾏为
.once - 程序运⾏期间 , 只触发⼀次事件处理函数
总结 : 修饰符给事件扩展额外功能
methods : {
one ( e ){
e . preventDefault ()
},
two ( num , e ){
e . preventDefault ()
}
}
}
</script>
<template>
<div @click = "fatherFn" >
<!-- vue 对事件进⾏了修饰符设置 , 在事件后⾯ . 修饰符名即可使⽤更多的功能 -->
<button @click.stop = "btn" > .stop 阻⽌事件冒泡 </button>
<a href = "http://www.baidu.com" @click.prevent = "btn" > .prevent 阻⽌默认⾏为 </a>
<button @click.once = "btn" > .once 程序运⾏期间 , 只触发⼀次事件处理函数 </button>
</div>
</template>
<script>
export default {
methods : {
fatherFn (){
console . log ( "father 被触发 " );
},
btn (){
console . log ( 1 );
}
}
}
</script>

5、vue指令-v-on按键修饰符

⽬标 : 给键盘事件 , 添加修饰符 , 增强能⼒
语法:
@keyup.enter - 监测回车按键
@keyup.esc - 监测返回按键
更多修饰符
<template>
<div>
<input type = "text" @keydown.enter = "enterFn" >
<hr>
<input type = "text" @keydown.esc = "escFn" >
</div>
</template>
<script>
export default {
methods : {
enterFn (){
console . log ( "enter 回⻋按键了 " );
},
escFn (){
console . log ( "esc 按键了 " );
}
}
}
</script>
总结 : 多使⽤事件修饰符 , 可以提⾼开发效率 , 少去⾃⼰判断过程
练习
<template>
<div>
<h1> {{ message }} </h1>
<button @click = "btn" > 逆转世界 </button>
</div>
</template>
<script>
export default {
data () {
return {
message : "HELLO, WORLD" ,
};
},
methods : {
btn (){
this . message = this . message . split ( "" ). reverse (). join ( "" )
}
}
};
</script>

6、vue指令 v-model

⽬标 : value 属性和 vue 数据变量 , 双向绑定到⼀起
语法 : v-model="vue 数据变量 "
双向数据绑定
数据变化 -> 视图⾃动同步
视图变化 -> 数据⾃动同步
演⽰ : ⽤户名绑定 - vue 内部是 MVVM 设计模式
<template>
<div>
<h1> {{ message }} </h1>
<button @click = "btn" > 逆转世界 </button>
</div>
</template>
<script>
export default {
data () {
return {
message : "HELLO, WORLD" ,
};
},
methods : {
btn (){
this . message = this . message . split ( "" ). reverse (). join ( "" )
}
}
};
</script> <template>
<div>
<!--
v-model: 是实现 vuejs 变量和表单标签 value 属性 , 双向绑定的指令
-->
<div>
<span> ⽤户名 : </span>
<input type = "text" v-model = "username" />
</div>
<div>
<span> 密码 : </span>
<input type = "password" v-model = "pass" />
</div>
<div>
<span> 来⾃于 : </span>
<!-- 下拉菜单要绑定在 select -->
<select v-model = "from" >
<option value = " 北京市 " > 北京 </option>
<option value = " 南京市 " > 南京 </option>
<option value = " 天津市 " > 天津 </option>
</select>
</div>
<div>
<!-- ( 重要 )
遇到复选框 , v-model 的变量值
⾮数组 - 关联的是复选框的 checked 属性
数组 - 关联的是复选框的 value 属性
-->
<span> 爱好 : </span>
<input type = "checkbox" v-model = "hobby" value = " 抽烟 " > 抽烟
<input type = "checkbox" v-model = "hobby" value = " 喝酒 " > 喝酒
<input type = "checkbox" v-model = "hobby" value = " 写代码 " > 写代码
</div>
<div>
<span> 性别 : </span>
<input type = "radio" value = " " name = "sex" v-model = "gender" >
<input type = "radio" value = " " name = "sex" v-model = "gender" >
</div>
<div>
<span> ⾃我介绍 </span>
<textarea v-model = "intro" ></textarea>
</div>
</div>
</template>
<script>
export default {
data () {
return {
username : "" ,
pass : "" ,
from : "" ,
hobby : [],
sex : "" ,
intro : "" ,
};
// 总结 :
// 特别注意 : v-model, input[checkbox] 的多选框状态
// 变量为⾮数组 , 则绑定的是 checked 的属性 (true/false) - 常⽤于 : 单个绑定使⽤
// 变量为数组 , 则绑定的是他们的 value 属性⾥的值 - 常⽤于 : 收集勾选了哪些值
}
};
</script>
总结 : 本阶段 v-model 只能⽤在表单元素上 , 以后学组件后讲 v-model ⾼级⽤法
7、vue 指令 v-model
⽬标 : value 属性和 vue 数据变量 , 双向绑定到⼀起
语法 : v-model="vue 数据变量 "
双向数据绑定
数据变化 -> 视图⾃动同步
视图变化 -> 数据⾃动同步
演⽰ : ⽤户名绑定 - vue 内部是 MVVM 设计模式
<template>
<div>
<h1> {{ message }} </h1>
<button @click = "btn" > 逆转世界 </button>
</div>
</template>
<script>
export default {
data () {
return {
message : "HELLO, WORLD" ,
};
},
methods : {
btn (){
this . message = this . message . split ( "" ). reverse (). join ( "" )
}
}
};
</script> <template>
<div>
<!--
v-model: 是实现 vuejs 变量和表单标签 value 属性 , 双向绑定的指令
-->
<div>
<span> ⽤户名 : </span>
<input type = "text" v-model = "username" />
</div>
<div>
<span> 密码 : </span>
<input type = "password" v-model = "pass" />
</div>
<div>
<span> 来⾃于 : </span>
<!-- 下拉菜单要绑定在 select -->
<select v-model = "from" >
<option value = " 北京市 " > 北京 </option>
<option value = " 南京市 " > 南京 </option>
<option value = " 天津市 " > 天津 </option>
</select>
</div>
<div>
<!-- ( 重要 )
遇到复选框 , v-model 的变量值
⾮数组 - 关联的是复选框的 checked 属性
数组 - 关联的是复选框的 value 属性
-->
<span> 爱好 : </span>
<input type = "checkbox" v-model = "hobby" value = " 抽烟 " > 抽烟
<input type = "checkbox" v-model = "hobby" value = " 喝酒 " > 喝酒
<input type = "checkbox" v-model = "hobby" value = " 写代码 " > 写代码
</div>
<div>
<span> 性别 : </span>
<input type = "radio" value = " " name = "sex" v-model = "gender" >
<input type = "radio" value = " " name = "sex" v-model = "gender" >
</div>
<div>
<span> ⾃我介绍 </span>
<textarea v-model = "intro" ></textarea>
</div>
</div>
</template>
<script>
export default {
data () {
return {
username : "" ,
pass : "" ,
from : "" ,
hobby : [],
sex : "" ,
intro : "" ,
};
// 总结 :
// 特别注意 : v-model, input[checkbox] 的多选框状态
// 变量为⾮数组 , 则绑定的是 checked 的属性 (true/false) - 常⽤于 : 单个绑定使⽤
// 变量为数组 , 则绑定的是他们的 value 属性⾥的值 - 常⽤于 : 收集勾选了哪些值
}
};
</script>
总结 : 本阶段 v-model 只能⽤在表单元素上 , 以后学组件后讲 v-model ⾼级⽤法

8、vue指令 v-model修饰符

_vue指令 v-model修饰符
⽬标: v-model拥有更强⼤的功能
语法:
  • v-model.修饰符="vue数据变量"
  • .number parseFloat转成数字类型
  • .trim 去除⾸尾空⽩字符
  • .lazy change时触发⽽⾮inupt
</script>
<template>
<div>
<div>
<span> 年龄 : </span>
<input type = "text" v-model.number = "age" >
</div>
<div>
<span> ⼈⽣格⾔ : </span>
<input type = "text" v-model.trim = "motto" >
</div>
<div>
<span> ⾃我介绍 : </span>
<textarea v-model.lazy = "intro" ></textarea>
</div>
</div>
</template>
<script>
export default {
data () {
return {
age : "" ,
motto : "" ,
intro : ""
</script>
总结: v-model修饰符, 可以对值进⾏预处理, ⾮常⾼效好⽤

9、vue指令 v-textv-html

⽬的: 更新DOM对象的innerText/innerHTML

语法 :
  • v-text="vue数据变量"
  • v-html="vue数据变量"
  • 注意: 会覆盖插值表达式
</script>
<template>
<div>
<p v-text = "str" ></p>
<p v-html = "str" ></p>
</div>
</template>
<script>
export default {
data () {
return {
str : "<span> 我是⼀个 span 标签 </span>"
}
}
}
</script>
总结 : v-text 把值当成普通字符串显⽰ , v-html 把值当做 html 解析

10、_vue指令 v-showv-if

⽬标 : 控制标签的隐藏或出现
语法:
  • v-show="vue变量"
  • v-if="vue变量"
  • 原理
  • v-show ⽤的display:none隐藏 (频繁切换使⽤)
v-else使⽤
<template>
<div>
<h1 v-show = "isOk" > v-show 的盒⼦ </h1>
<h1 v-if = "isOk" > v-if 的盒⼦ </h1>
<div>
<p v-if = "age > 18" > 我成年了 </p>
<p v-else > 还得多吃饭 </p>
</div>
</div>
</template>
<script>
export default {
data () {
return {
isOk : true ,
age : 15
}
}
}
</script>
总结 : 使⽤ v-show v-if 以及 v-else 指令 , ⽅便通过变量控制⼀套标签出现 / 隐藏

案例-折叠⾯板

⽬标 : 点击展开或收起时,把内容区域显⽰或者隐藏
此案例使⽤了 less 语法 , 项⽬中下载模块
yarn add less@3.0.4 less-loader@5.0.0 -D
只有标签和样式
<template>
<div id = "app" >
<h3> 案例:折叠⾯板 </h3>
<div>
<div class = "title" >
<h4> 芙蓉楼送⾟渐 </h4>
<span class = "btn" >
收起
</span>
</div>
<div class = "container" >
<p> 寒⾬连江夜⼊吴 , </p>
<p> 平明送客楚⼭孤。 </p>
<p> 洛阳亲友如相问, </p>
<p> ⼀⽚冰⼼在⽟壶。 </p>
</div>
</div>
</div>
</template>
<script>
export default {
data () {
return {
}
}
}
</script>
<style lang = "less" >
body {
background-color : #ccc ;
#app {
width : 400px ;
margin : 20px auto ;
background-color : #fff ;
border : 4px solid blueviolet ;
border-radius : 1em ;
box-shadow : 3px 3px 3px rgba ( 0 , 0 , 0 , 0.5 );
padding : 1em 2em 2em ;
h3 {
text-align : center ;
}
.title {
display : flex ;
justify-content : space-between ;
align-items : center ;
border : 1px solid #ccc ;
padding : 0 1em ;
}
.title h4 {
line-height : 2 ;
margin : 0 ;
}
.container {
border : 1px solid #ccc ;
padding : 0 1em ;
}
.btn {
/* ⿏标改成⼿的形状 */
cursor : pointer ;
}
}
}
</style>
正确答案
<template>
<div id = "app" >
<h3> 案例:折叠⾯板 </h3>
<div>
<div class = "title" >
<h4> 芙蓉楼送⾟渐 </h4>
<span class = "btn" @click = "isShow = !isShow" >
{{ isShow ? ' 收起 ' : ' 展开 ' }}
</span>
</div>
<div class = "container" v-show = "isShow" >
<p> 寒⾬连江夜⼊吴 , </p>
<p> 平明送客楚⼭孤。 </p>
<p> 洛阳亲友如相问, </p>
<p> ⼀⽚冰⼼在⽟壶。 </p>
</div>
</div>
</div>
</template>
<script>
export default {
data () {
return {
isShow : false
}
}
}
</script>

11、vue指令-v-for

⽬标 : 列表渲染 , 所在标签结构 , 按照数据数量 , 循环⽣成
语法
  •       v-for="(, 索引) in ⽬标结构"
  •       v-for=" in ⽬标结构"
⽬标结构:
  •       可以遍历数组 / 对象 / 数字 / 字符串 (可遍历结构)
注意:
  •       v-for的临时变量名不能⽤到v-for范围外
<template>
<div id = "app" >
<div id = "app" >
<!-- v-for 把⼀组数据 , 渲染成⼀组 DOM -->
<!-- ⼝诀 : 让谁循环⽣成 , v-for 就写谁身上 -->
<p> 学⽣姓名 </p>
<ul>
<li v-for = "(item, index) in arr" :key = "item" >
{{ index }} - {{ item }}
</li>
</ul>
<p> 学⽣详细信息 </p>
<ul>
<li v-for = "obj in stuArr" :key = "obj.id" >
<span> {{ obj.name }} </span>
<span> {{ obj.sex }} </span>
<span> {{ obj.hobby }} </span>
</li>
</ul>
<!-- v-for 遍历对象 ( 了解 ) -->
<p> ⽼师信息 </p>
<div v-for = "(value, key) in tObj" :key = "value" >
{{ key }} -- {{ value }}
</div>
<!-- v-for 遍历整数 ( 了解 ) - 1 开始 -->
<p> 序号 </p>
<div v-for = "i in count" :key = "i" > {{ i }} </div>
</div>
</div>
</template>
<script>
export default {
data () {
return {
arr : [ " ⼩明 " , " ⼩欢欢 " , " ⼤⻩ " ],
stuArr : [
{
id : 1001 ,
name : " 孙悟空 " ,
sex : " " ,
hobby : " 吃桃⼦ " ,
},
{
id : 1002 ,
name : " 猪⼋戒 " ,
sex : " " ,
hobby : " 背媳妇 " ,
},
],
tObj : {
name : " ⼩⿊ " ,
age : 18 ,
class : "1 " ,
},
count : 10 ,
};
},
};
</script>
总结 : vue 最常⽤指令 , 铺设页⾯利器 , 快速把数据赋予到相同的 dom 结构上循环⽣成

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

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

相关文章

VASA-1: Lifelike Audio-Driven Talking Faces Generated in Real Time

TL;DR 2024 年微软发表的数字人工作 VASA-1&#xff0c;支持基于单人头像照片和语音音频输入&#xff0c;来实时生成数字人视频。支持在线生成高达 40 FPS 的 512512 分辨率视频&#xff0c;目前为数不多能做到实时推理且效果很好的 talking face 工作。 Paper name VASA-1:…

【Ubuntu24.04】服务部署(基础)

目录 0 背景1 设置静态IP2 连接服务器3 部署服务3.1 安装JDK3.2 下载并安装MySQL8.43.2.1 从官网下载 APT Repository 配置文件3.2.2 安装 MySQL8.43.2.3 配置远程连接 3.3 下载并配置Redis3.4 上传jar包并部署应用3.5 开放端口 4 总结 0 背景 在成功安装了Ubuntu24.04操作系统…

[Java]Properties类加载配置文件

在我JDBC的文章末尾展示了完整的JDBC使用流程。但那种方式有一个问题&#xff0c;如果项目需要更换数据库&#xff0c;或者这个项目本来就是要使用多种数据库&#xff0c;那么像这种把信息写死在代码里边的编写模式&#xff0c;是肯定不行的。实际开发中肯定不会使用这种把信息…

STM32CUBEIDE的使用【五】TFT_LCD

硬件平台&#xff1a; 正点原子潘多拉开发板 STM32L475 软件平台&#xff1a; STM3232CubeMX 、STM32CUBEIDE 屏幕尺寸为1.3寸 分辨率240*240 16位真彩色 使用SPI接口驱动TFT_LCD 用来显示ASCII 字符图像和彩色功能 CubeMX配置 Source Code 创建app_lcd.c文件 #include &q…

Python数据分析NumPy和pandas(三十二、数据拆分-应用-合并)

最常用的 GroupBy 方法是 apply&#xff0c;apply 将正在操作的对象拆分为多个片段&#xff0c;在每个片段上调用传递给它函数&#xff0c;然后尝试连接这些片段。 还是用前面的小费数据集tips.csv&#xff0c;它的内容如下图&#xff1a; 假设我们想按smoker进行分组并选择前…

【毫米波雷达(九)】前雷达软件开发遇到的问题汇总及解决方法

前雷达软件开发遇到的问题汇总及解决方法 一、CAN/CANFD通信1、雷达CAN未能正常发出数据2、雷达在车上接收不到车身信息3、程序下载失败4、DV试验发送数据偶发断连5、发送感知信息丢帧或者丢报文6、上电发出第一帧的报文时间长7、ZCANPRO有错误帧二、协议转换&#xff08;以太网…

linux 下调试 bmp280 气压传感器

供自己备忘&#xff1b; linux 下有自带的 bmp280 驱动&#xff0c;实际测试数据抖动不理想&#xff1b; 于是自己重写一个 bmp280 驱动&#xff0c;实际测试数据依旧抖动&#xff0c;不理想&#xff1b; 考虑使用 SPL06 来测试看看效果&#xff1b; 1. 参考资料&#xff1…

『VUE』26. props实现子组件传递数据给父组件(详细图文注释)

目录 本节内容示例代码总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 本节内容 父组件传子组件–props 子组件传父组件–自定义事件 本节讲子组件传父组件–通过props里的方法传递,就是父亲写了一个函数,给子组件调用,然后…

Linux编辑/etc/fstab文件不当,不使用快照;进入救援模式

目录 红帽镜像9救援模式 现象 解决 第一步&#xff1a;修改启动参数以进入救援模式 第二步&#xff1a;进入救援模式、获取root权限、编辑/etc/fstab文件 第三步&#xff1a;编辑好后在重启 下面是ai给的模板 红帽镜像9救援模式 编辑/etc/fstab不当时 17 /dev/nvme0n3p1…

异地情侣远程玩游戏?GameViewer远程串流轻松实现!

情侣之间偶尔想远程玩游戏增进感情却苦于找不到合适的软件&#xff1f;想要寻找一款低门槛好上手操作便捷的串流软件 &#xff1f; 在这里向你推荐 网易GameViewer远程 &#xff01; GameViewer是专为游戏玩家的设计远程控制软件&#xff0c;可以帮助异地情侣实现这一需求。它让…

1990-2020年中国人工林和天然林空间分布数据集

数据介绍 植树已被认为是减缓气候变化的潜在有效解决方案。自上世纪70年代以来&#xff0c;中国实施了世界上最大的造林和再造林工程&#xff0c;但中国人工林的高分辨率地图仍然无法获得。在这项研究中&#xff0c;我们探索了使用多源遥感图像和众包样本来制作第一张高分辨率…

[Docker#10] network | 架构 | CRUD | 5种常见网络类型 (实验)

目录 1. Docker 为什么需要网络管理 2. Docker 网络架构简介 CNM&#xff08;Container Network Model&#xff09; Libnetwork 驱动 3. ⭕常见网络类型&#xff08;5 种&#xff09; 4. Docker 网络管理命令 一. bridge 网络 1. 操作案例&#xff1a;容器间网络通信 …

Spring Cloud Gateway快速入门Demo

1.什么是Spring Cloud Gateway&#xff1f; Spring Cloud Gateway 是一个基于 Spring Framework 和 Spring Boot 构建的 API 网关服务。它提供了一种简单而有效的方式来路由请求、提供跨领域的关注点&#xff08;如安全、监控/指标和弹性&#xff09;以及其他功能。Spring Clo…

【AI换脸整合包及教程】Rope:AI 换脸工具的功能、原理、应用

在人工智能技术迅猛发展的当下&#xff0c;AI 换脸技术无疑是近年来备受瞩目的焦点之一。其中&#xff0c;Rope 作为一款开源的 AI 换脸工具&#xff0c;因其出色的易用性和强大的功能而广受青睐。本文将对 Rope 的功能、技术原理、应用场景以及所面临的法律和伦理问题进行详细…

Yocto项目 - VIRTUAL-RUNTIME,它有什么用?

Yocto 项目是一个完整的 Linux 分布构建工具集&#xff0c;提供了构建完全自定义小型核心或完整应用的能力。在这样一个构建系统中&#xff0c;VIRTUAL-RUNTIME这个概念是应用构建和选择处理中的重要部分。这篇文章将从概念、优势、应用场景和实战案例几个方面&#xff0c;全面…

BB1-NHS ester被用于将各种生物活性分子与蛋白质或其他生物大分子进行共轭连接,2082771-52-4

CAS号&#xff1a;2082771-52-4 中文名&#xff1a;BB1-琥珀酰亚胺酯&#xff0c;BB1-活性酯 英文名&#xff1a;BB1-NHS ester&#xff0c;或BB1-Succinimidyl Ester 分子式&#xff1a;C32H32N6O4 分子量&#xff1a;564.63 纯度&#xff1a;≥95% 供应商&#xff1a;陕…

初级数据结构——栈

目录 前言一、栈的基本概念二、栈的实现方式三、栈的性能分析四、栈的应用场景五、栈的变体六、出栈入栈的动态图解七、代码模版八、总结结语 前言 数据结构栈&#xff08;Stack&#xff09;是一种线性的数据结构&#xff0c;它只允许在序列的一端&#xff08;称为栈顶&#x…

Jdbc学习笔记(四)--PreparedStatement对象、sql攻击(安全问题)

目录 &#xff08;一&#xff09;使用PreparedStatement对象的原因&#xff1a; 使用Statement对象编写sql语句会遇到的问题 ​编辑 &#xff08;二&#xff09;sql攻击 1.什么是sql攻击 2.演示sql攻击 &#xff08;三&#xff09;防止SQL攻击 1.PreparedStatement是什么 …

前端开发必备!2024年最全工具和框架资源大汇总

在前端开发的过程中&#xff0c;我们会使用各种工具、框架和库来提升开发效率和用户体验。随着技术的不断发展&#xff0c;前端生态系统逐渐丰富&#xff0c;开发者面临着越来越多的选择。本文将分享一些常见的前端资源&#xff0c;帮助开发者根据项目需求选择合适的工具。 1.…

备份可以起到什么作用?

在数字化时代&#xff0c;数据已经成为企业最宝贵的资产。然而&#xff0c;数据丢失和系统故障可能给企业带来巨大的损失。华为云备份服务作为一款全面的数据保护解决方案&#xff0c;致力于帮助企业保障数据安全&#xff0c;确保业务的连续性。九河云来给大家说一下华为云备份…