【b站咸虾米】2 Vue基础(上) 2021最新Vue从基础到实例高级_vue2_vuecli脚手架博客案例

课程地址:【2021最新Vue从基础到实例高级_vue2_vuecli脚手架博客案例】 https://www.bilibili.com/video/BV1pz4y1S7bC/?share_source=copy_web&vd_source=b1cb921b73fe3808550eaf2224d1c155

目录

2 Vue基础 上

2.0 补充知识

2.0.1 Vue实例的作用范围

2.0.2 template标签

2.1 条件渲染

2.1.1 v-if

1 v-if使用

2 v-else使用

3 v-else-if

4 变量控制

5 练习

2.1.2 v-show

2.2 列表渲染

2.3 模板语法

2.3.1 v-text指令

2.3.2 v-html指令

2.3.3 v-bind指令

2.4 事件处理

2.4.1 v-on指令

2.4.2 事件处理方法

2.4.3 内联处理器中的方法

2.4.4 事件修饰符

1 stop

2 prevent

2.4.5 按键修饰符

2.4.0 案例-轮播

2.5 表单输入绑定

2.5.1 v-model指令

2.5.2 v-model简写

2.5.3 表单组件

1 单行文本 

2 多行文本

3 复选框

4  多个复选框

5 单选按钮

6 下拉框

2.5.4 修饰符

2.6 class 与 style绑定

2.6.1 style绑定

2.6.2 class绑定

2.7 案例

2.7.1 高亮显示案例

2.7.2 评论模块的增与删

1 样式

2 功能分析

3 逻辑实现


2 Vue基础 上

介绍 — Vue.js

2.0 补充知识

2.0.1 Vue实例的作用范围

举例:

<body><div id="app1"><h1>{{ title }}</h1></div><div id="app2"><em>{{ title }} </em></div>
</body></html><script>let arr1 = new Vue({el: '#app1',data: {title: 'Vue2学习'}})
</script>

结果

说明id为app2对应的div,不支持模板语法。

怎么让他可以支持呢?再实例化一个Vue对象,绑定app2。

这样就行了。

结论:

Vue对象的作用范围是他绑定的div范围。(我自己总结的,感觉这句话不好,词不达意)。

2.0.2 template标签

在<template>元素上使用v-if条件渲染分组。

template不会直接显示,只会作为一个标签,包裹其他元素。

案例。

要么显示今天是周几,要么显示今天天气怎么样。

代码如下。

        <div class="outOut" v-if="true"><div>今天是周1</div><div>今天是周2</div><div>今天是周3</div></div><div class="outOut" v-else><div>今天是晴天</div><div>今天是阴天</div></div>

结果

②外面还包了一层①。不想要①,层次太多了。

解决途径:使用template标签。

tips:template标签的类名不需要,写了也没用。

结果

template不显示。起到显示和隐藏的分组功能,最终不渲染到DOM体中。

2.1 条件渲染

介绍 — Vue.js

任何的程序语言都是有条件与循环的。Vue属于js的一部分。

2.1.1 v-if

1 v-if使用

v-if使用。

注意

  • v-if直接放到DOM体里。
  • v-if的值是 true 或 false.
  • v-if可以嵌套v-if。
2 v-else使用

v-else使用。

只执行v-if或v-else。

注意:v-if和v-else需连在一起使用(空格,空行没问题),否则报错。(想象一下js的if和else语句中间掺杂其他代码,也是会报错的。)

<body><div class="out"><h1 v-if="true">{{ title }}</h1><h1 v-else>{{ title + ': 今天又学习了'}}</h1></div>
</body></html>
<script>new Vue({el: '.out',data: {title: 'Vue2学习'}})
</script>
3 v-else-if
    <div class="out"><h1 v-if="false">{{ title }}</h1><h1 v-else-if="true">{{ title + ': 今天又学习了吗'}}</h1><h1 v-else>{{ title + ': 今天又学习了'}}</h1></div>

结果

4 变量控制

用一个变量为v-if/v-else-if赋值。直接v-if='isShow',然后isShow是个boolean类型。

5 练习

小tips:输入div{今天是周$}*8,生成以下。

要显示周三,怎么处理。

<body><div class="out"><h1 v-if="isShow">{{ title }}</h1><h1 v-else-if="true">{{ title + ': 今天又学习了吗'}}</h1><h1 v-else>{{ title + ': 今天又学习了'}}</h1><div v-if="day === 1">今天是周1</div><div v-else-if="day === 2">今天是周2</div><div v-else-if="day === 3">今天是周3</div><div v-else-if="day === 4">今天是周4</div><div v-else-if="day === 5">今天是周5</div><div v-else-if="day === 6">今天是周6</div><div v-else-if="day === 7">今天是周7</div><div v-else>格式错误</div></div>
</body></html>
<script>new Vue({el: '.out',data: {title: 'Vue2学习',isShow: true,day: 3}})
</script>

结果

只显示周三。

(这里up用的JS条件判断来解释html的条件判断)。

补充:Date对象

new Date().getDay()  获取当前时间是周几。

2.1.2 v-show

v-if,所控制的对象要么渲染,要么在DOM体不存在。

v-show,所控制的对象实际存在,v-show实际控制元素的显示与否,对应元素的style的display为none。

v-show适合做一些按钮的切换、轮播器的切换。显示和隐藏用css,性能会好些。如果用v-if,相当于每次切换,DOM体都要重新渲染一次,性能上会大打折扣。

2.2 列表渲染

列表渲染v-for

效果

数组和对象,难看。

可以单独访问数组的元素,和对象的属性值。

        <h2>{{ arr[0]}}</h2><h2>{{ obj.name}}</h2>

其中,对象也可以用数组访问元素的形式。obj.name是对象自己的访问形式。

        <h2>{{ obj['name']}}</h2>

结果

没有问题。

但是希望能够只显示数组的元素,不显示中括号,可以使用v-for。

        <div v-for="(item, index) in arr">{{ item + ',' }}</div>

效果

对象也是同理

        <div v-for="(item, index) in obj">{{ item + ',' }}</div>

效果 

2.3 模板语法

2.3.1 v-text指令

data渲染到页面上,除了使用模板语法{{xxx}}的方式,还可以使用v-text指令。

v-if和v-for都是指令。

v-就是指令的前缀。

效果

两个用法的效果是一样的。

2.3.2 v-html指令

对于字符串中有html标签的情况,使用 模板语法 和 v-text指令 都不能正常显示。

结果

bilibili应该是斜体,且em标签不应该展示出来。

使用v-html指令

<body><div id="app"><h1>{{ title}}</h1><h1 v-text="title"></h1><h2>{{ job }}</h2><h2 v-text="job"></h2><h2 v-html="job"></h2></div>
</body>

效果

还可以给字符串添加样式

<script>let arr1 = new Vue({el: '#app',data: {title: 'Vue2学习',job: '<em style="font-size: 50px">bilibili</em>大学'}})
</script>

效果

这跟jQuery差不多(不看了,没看到有用jQuery的)。

2.3.3 v-bind指令

举例

<body><div id="app"><!-- title表示鼠标移上去显示的内容 --><h3 title="软件大道">软件大道</h3></div>
</body>

效果

鼠标移到“软件大道”上,会显示软件大道。(但是截不出图)

使用v-bind指令。

一些指令能够接收一个“参数”,在指令名称之后以冒号表示。例如,v-bind 指令可以用于响应式地更新 HTML attribute。

使用v-bind指令,绑定h3标签的title属性。

<body><div id="app"><!-- title表示鼠标移上去显示的内容 --><h3 title="软件大道" v-bind:title="address">软件大道</h3></div>
</body>

除了title,不同标签还有其他很多属性。这里就不显示了。

v-bind的缩写

v-bind 可以缩写为 (空) 。

案例

        <img :src="picLink" alt="">

效果

2.4 事件处理

2.4.1 v-on指令

v-on指令,就是事件指令。比如js的onClick等事件。

希望点击文字可以切换内容。

举例

给h1标签,绑定点击事件,事件处理函数里会改变h1标题的显示内容。

<body><div id="app"><h1 v-text="title" v-on:click="changeText"></h1></div>
</body></html>
<script>let arr1 = new Vue({el: '#app',data: {title: 'Vue2学习',address: '雨花台图书馆'},methods: {changeText() {this.title = '雨花台区图书馆'}}})
</script>

效果

初始会显示

点击这行文本,显示其他内容。

v-on: 缩写为 @(注意这里连冒号都要省略)

        <h1 v-text="title" @click="changeText"></h1>

效果还是一样的。

为轮播图做准备的案例。

<body><div id="app"><!-- 一共有3张照片 --><button @click="subtract">-</button><button @click="add">+</button><h1>{{ number}}</h1><img :src="'img/vue' + number + '.jpg'" alt=""></div>
</body></html>
<script>let arr1 = new Vue({el: '#app',data: {title: 'Vue2学习',number: 0,prcLink: 'img/vue0.jpg'},methods: {changeText() {this.title = '雨花台区图书馆'},add() {this.number++;if (this.number > 2) {this.number = 0;}},subtract() {this.number--;if (this.number < 0) {this.number = 2;}}}})
</script>

2.4.2 事件处理方法

事件处理方法的参数是原生的事件event。

2.4.3 内联处理器中的方法

在html中使用标签时,直接给他的事件处理方法传递一个参数。

这样对应的事件处理方法的参数就是html中传递的参数。

vue2官网文档的知识。

在内联语句处理器中访问原始的 DOM 事件。可以用特殊变量 $event 把它传入方法。

2.4.4 事件修饰符

在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求。尽管我们可以在方法中轻松实现这点,但更好的方式是:方法只有纯粹的数据逻辑,而不是去处理 DOM 事件细节。

为了解决这个问题,Vue.js 为 v-on 提供了事件修饰符。之前提过,修饰符是由点开头的指令后缀来表示的。

  • .stop
  • .prevent
  • .capture
  • .self
  • .once
  • .passive

1 stop

阻止单击事件的继续传播(阻止事件冒泡)。

冒泡事件:如果有一个div,里面还有一个div,且两个div都绑定了点击事件。那么点击里面的div,会触发里面div的点击事件,同时也会触发外面div的点击事件。这就是事件冒泡。场景:多个广告嵌套,点击里面的广告,可能也会触发外面广告的跳转。应该阻止跳转到外部广告,因此可以用stop修饰符。

使用,见上述代码片段。

2 prevent

阻止默认事件。

比如阻止提交按钮点击后的跳转动作。

案例

点击提交按钮后,不会直接提交。

先去执行提交方法,如果满足onSubmit方法,那么会跳转href指定的地址。

如果没有满足,那么不会跳转到预定的地址。

奇怪,不给form的action属性赋值,点击提交按钮也不会提交。

感觉直接用点击事件处理,点击事件处理方法里加判断就行。

p17没看明白。

其他的修饰符就不介绍了。

2.4.5 按键修饰符

@keyup.enter=“事件处理方法名”

按下回车键。场景:没有搜索按钮的提交表单场景,按下回车提交表单。

其他还有tab、esc、left键等。

2.4.0 案例-轮播

实现一个轮播图效果。

要等进群拿资料再做这个。

2.5 表单输入绑定

准备一个form表单。

2.5.1 v-model指令

v-model,数据双向绑定。让输入框的内容和data数据保持同步。

使用v-bind绑定数据,单向绑定。

<body><div id="app"><form action=""><input type="text" :value="val"><h1>{{ val}}</h1></form></div>
</body></html>
<script>let arr1 = new Vue({el: '#app',data: {val: '123'}})
</script>

效果

改变input框内的内容,input绑定的val值不会发生变化。

v-bind,实现data中的数据控制input框内的内容。

这里,up用v-bind和input绑定点击事件的两种方式合用,来实现数据的双向绑定,即data中的数据变化,可以引起input框的内容的同步变化;input框内容的变化,引起data中的数据的同步变化。

这里就不记笔记了,直接看最终的v-model实现。

使用v-model实现数据的双向绑定。

        <form action=""><input type="text" v-model:value="val"><h1>{{ val}}</h1></form>

效果

2.5.2 v-model简写

如果v-model绑定的是标签的value属性,那么v-model:value='变量名',可以简写为v-model='变量名',即 :value被省略掉了。

案例。

        <form action=""><input type="text" v-model="val"><h1>{{ val}}</h1></form>

2.5.3 表单组件

1 单行文本 

标签:input,type属性:text

2 多行文本

标签:input,type属性:textarea

3 复选框

复选框,标签:input, type: checkbox。

是否同意用户协议。

<body><div id="app"><form action=""><input type="text" v-model="val"><h1>{{ val}}</h1><hr><input type="checkbox" v-model="checked">是否同意用户协议<h1>{{ checked}}</h1></form></div>
</body></html>
<script>let arr1 = new Vue({el: '#app',data: {val: '123',checked: false}})
</script>

小tips:点击文字也可以让多选框被选中。

步骤1:给input加个id;

步骤2:给需要处理的文本外面包裹一个label标签;

步骤3:label的for属性值与步骤1加个id名一致。

<input type="checkbox" v-model="checked" id="myChecked"><label for="myChecked">是否同意用户协议</label>

方法2:

直接在原来多选框元素的外层包裹一个label标签。

            <label><input type="checkbox" v-model="checked">是否同意用户协议</label>

效果与方法1是一样的。

最终效果

默认是个false,且多选框未选择。

当选择多选框时,下面的值(多选框的value属性值)为false

4  多个复选框

内容多的复选框,数据用一个数组来保存。

案例。

<body><div id="app"><form action="">南京:<label><input type="checkbox" value="yuhuatai" v-model="checkArr">雨花台区</label><label><input type="checkbox" value="jiangning" v-model="checkArr">江宁区</label><label><input type="checkbox" value="jianye" v-model="checkArr">建邺区</label><h1>{{ checkArr }}</h1></form></div>
</body></html>
<script>let arr1 = new Vue({el: '#app',data: {checkArr: ['yuhuatai'],}})
</script>

解释:

效果

初始显示

用户选择其他地区时显示

5 单选按钮

单选按钮,标签:input,type属性:radio。就不演示了。

6 下拉框

标签:select。

单选下拉框。

案例

<body><div id="app"><form action=""><select v-model="selected"><option value="xuanwuhu">玄武湖</option><option value="hongshanzoo">红山动物园</option><option value="tangshan">汤山风景区</option></select><h1>{{ selected}} </h1></form></div>
</body></html>
<script>let arr1 = new Vue({el: '#app',data: {selected: ''}})
</script>

效果

初始什么都没有

点开下拉框,选择玄武湖

多选下拉框。在组件里介绍。

2.5.4 修饰符

修饰符有很多,.trim比较重要。

如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符。

这里就不演示了。

2.6 class 与 style绑定

适用于选中区域高亮的情况。

2.6.1 style绑定

行内样式style。

回忆下正常的行内样式书写方式。

        <div style="width: 100px; height: 200px; background-color: red"></div>

实现style绑定。

可以发现,正常的行内样式写法,与style绑定的行内样式写法还是有一定差别的。要在理解的基础上记住。

其他还有数组格式等,这里就不介绍了。

2.6.2 class绑定

一般用class绑定的多一些,style绑定比较少。

class设置不会覆盖,只会追加,比如out样式再加newOut样式,会有2个样式,不会出现只有newOut样式的情况。

点击“切换样式”按钮时,div样式变化,背景色由蓝色变为粉色。

<body><div id="app"><button @click="changeClass">切换样式</button><div :class="{'out': true, 'newOut': isShow}"></div></div>
</body></html>
<script>let arr1 = new Vue({el: '#app',data: {isShow: false},methods: {changeClass() {this.isShow = !this.isShow;console.log(this.isShow);}}})
</script>
<style>#app {.out {width: 200px;height: 300px;background-color: skyblue;&.newOut {background-color: plum;}}}
</style>

效果

点击按钮

注意:

class命名,如果class用短横线连接的方式命名,

此时,绑定class方式的写法有2种

1、要绑定的class类名改为大驼峰式写法

2、改用单引号''括起来

注意:

① 左边的out类,加不加单引号都可以

② 方式1newOut写法不能加单引号,方式2new-out写法必须加单引号

总结:一般就是用上面的写法,当然也有其他的写法(对象语法,数组语法),这里没有必要去掌握。

2.7 案例

两个案例的并集覆盖了2.1-2.6的知识点。目前来看掌握情况还是可以的。难点在下一部分。

2.7.1 高亮显示案例

学完以上知识,现在做一个小案例。

涉及动态绑定class,事件处理,列表渲染,模板语法。

快速生成多个带class的div。.box{}*4,生成4个class为box的div。

让三个div块在鼠标点击的时候高亮显示。

代码

<body><div id="app"><div class="box" :class="{active: num===index}" v-for="(item, index) in listArr" @click="clickBox(index)">{{item}}</div></div>
</body></html>
<script>let arr1 = new Vue({el: '#app',data: {listArr: ["玄武湖","鸡鸣寺","紫金山"],num: 0},methods: {clickBox(e) {console.log(e);this.num = e;}}})
</script>
<style>.box {width: 200px;height: 30px;background-color: #ccc;margin-bottom: 10px;&.active {background-color: orange;}}
</style>

效果

判断条件就是让记录点击的num与静态的index进行判断,相等的话就绑定高亮的样式。

2.7.2 评论模块的增与删

做一个评论模块。

老师不讲样式,我来自己实现下。

1 样式

我自己实现的。

1 阴影实现的不对(懒得改了,看up的)

2 尺寸不对(也没有高保图)

3 颜色不对(没有高保图)

我觉得还是不错的,给自己点赞。

我的代码

<body><div id="app"><!-- 输入部分 --><div class="inputComment"><div class="inputCommentPart"><input type="text" class="inputCommentInput"></div><div class="sendCommentPart">评论</div></div><!-- 展示部分 --><div class="showComment"><div class="comment" v-for="(item, index) in commentList">{{ item }}</div></div><!-- 统计部分 --><div class="totals"><div v-if="num > 0" class="commentTotals">共{{num}}条评论</div><div v-else class="noData">暂无评论</div></div></div></body></html>
<script>let arr1 = new Vue({el: '#app',data: {commentList: ['这是一条评论','这也是一条评论'],num: 2}})
</script>
<style>#app {width: 500px;height: 250px;background-color: #fff;margin: 50px auto;padding: 0 20px;box-shadow: 10px 10px 10px 0 rgba(0, 0, 0, 0.09);box-shadow: -10px -10px 10px 0 rgba(0, 0, 0, 0.09);box-sizing: border-box;/* 涉及外边距塌陷,可以去看3、盒子模型 */overflow: hidden;.inputComment {width: 400px;height: 50px;margin: 20px auto;display: flex;.inputCommentPart {width: 320px;.inputCommentInput {background-color: #ccc;width: 320px;height: 50px;border: 0px;padding: 0;}}.sendCommentPart {flex: 1;background-color: green;color: #fff;font-size: 20px;line-height: 50px;text-align: center;}}.showComment {border-top: 2px solid #ccc;.comment {color: #444;font-size: 18px;padding: 10px;border-bottom: 2px solid #ccc;}}.totals {color: #444;font-size: 12px;margin: 20px auto;text-align: center;}}
</style>

看老师的。

阴影。四处发阴影,x和y偏移量设置为0。

box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);

还漏了一个动态效果。鼠标移到评论上的时候,显示删除按钮。

实现

html没什么好说的,就一个div块。

样式

其他的样式差的不是很大,就不改了。

2 功能分析

我自己做哈

  1. 输入评论,点击评论按钮,可以展示到下面的评论列表中;
  2. 当没有评论时,最下面显示“暂无评论”;
  3. 点击评论右边的×,可以删除该条评论;
  4. 不可提交空内容。

以上就是我想到的。

3 逻辑实现

我的实现

感觉做的还可以,其实没想象的那么难。

贴个代码。

<body><div id="app"><!-- 输入部分 --><div class="inputComment"><div class="inputCommentPart"><input type="text" class="inputCommentInput" v-model="commentInputting"@keyup.enter="addComment">{{commentInputting}}</div><div class="sendCommentPart" @click="addComment">评论</div></div><!-- 展示部分 --><div class="showComment"><div class="comment" v-for="(item, index) in commentList">{{ item }}<div class="close" @click="deleteComment(index)">×</div></div></div><!-- 统计部分 --><div class="totals"><div v-if="commentList.length > 0" class="commentTotals">共{{commentList.length}}条评论</div><div v-else class="noData">暂无评论</div></div></div>
</body></html>
<script>let arr1 = new Vue({el: '#app',data: {commentList: [],commentInputting: ''},methods: {addComment() {console.log(this.commentInputting);if (this.commentInputting) {this.commentList.unshift(this.commentInputting);this.commentInputting = '';}},deleteComment(index) {this.commentList.splice(index, 1);}}})
</script>

看看老师的

老师的跟我的一致,不用看了。

用到了v-model数据双向绑定(表单输入绑定)、列表渲染、条件渲染、模板语法、事件处理。(就class绑定没有涉及)。

总结:(不是很熟的知识点)

1、数组任意位置删除元素,splice

2、数组在前面增加元素,unshift

3、回车触发事件,@keyup.enter="绑定的事件名"

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

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

相关文章

50、东北大学、阿尔伯塔大学:Hi-GCN从2个层次角度进行图学习,用来诊断脑部疾病[你这和MVS-GCN套娃呢?]

本文由东北大学医学图像智能计算教育部重点实验室&#xff0c;加拿大阿尔伯塔大学于2020年10.24日发表于<Computers in Biology and Medicine> JCR\IF: Q1\7.7 Abstract&#xff1a; 目的:近年来&#xff0c;脑连接网络已被用于神经系统疾病的分类&#xff0c;如自闭症…

【论文翻译】UP-DETR—Unsupervised Pre-training for Detection Transformers

0.论文摘要 摘要——通过Transformer model编码器——解码器架构&#xff0c;用于目标检测的检测Transformer model&#xff08;DETR&#xff09;达到了与Faster R-CNN相比具有竞争力的性能。然而&#xff0c;使用scratch transformers训练&#xff0c;DETR需要大规模的训练数…

【docker】docker的常用命令

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;中间件 ⛺️稳中求进&#xff0c;晒太阳 常规命令 docker version #查看docker 版本信息docker info #显示docker 的系统信息&#xff0c;包括镜像和容器数量docker --help #查看所有的命…

如何发布新闻稿?如何让媒体记者报道自己的企业?

目前&#xff0c;很多企业和个人创业者都知道用新闻稿或软文来做宣传&#xff0c;但是一般只可以发布到自己的微信公众号、百家号等自媒体平台&#xff0c;往往收效甚微。有企业找到小马识途营销顾问咨询原因&#xff0c;小马识途营销顾问分析自媒体上发软文效果不明显的原因主…

【超图】SuperMap如何使知识图谱与BIM数据的绑定

作者&#xff1a;taco 近两年知识图谱的概念突然大火了起来&#xff0c;随之而来的就是用户的各种需求&#xff0c;你们的知识图谱能干什么呢&#xff1f;知识图谱有哪些应用呢&#xff1f;在结合客户的一些需求&#xff0c;以及自身的一些想法&#xff0c;写下这篇文章。 一、…

MySQL的insert-on-duplicate语句详解

一、insert-on-duplicate语句语法 注意&#xff1a;ON DUPLICATE KEY UPDATE只是 MySQL的特有语法&#xff0c;并不是SQL标准语法&#xff01; INSERT INTO … ON DUPLICATE KEY UPDATE 是 MySQL 中一种用于插入数据并处理重复键冲突的语法。 这个语法适用于在 insert的时候…

抖音直播招聘的主要优势有哪些?

触达广泛受众抖音拥有海量活跃用户,通过直播可以瞬间吸引大量观众关注。相比传统招聘渠道,抖音直播能够触达到更广泛、更多样化的人才群体。 提升品牌形象在直播中,企业可以展现自身独特的企业文化和价值观,增强与观众的互动交流,有助于提升品牌形象和美誉度。 精准招聘定位企业…

Java项目:53 springboot校园管理系统的设计与实现014

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 1、关于校园管理系统的基本要求&#xff1a; &#xff08;1&#xff09;功能要求&#xff1a;可以管理首页、个人中心、院校管理、用户管理、单位类别…

Spirngboot中文乱码解决方案

在使用springboot的时候,如果我们直接在控制器里面返回中文, 则默认可能会是乱码,因为默认的编码是ISO8859-1, 要解决这个问题, 就需要我们通过重写springboot里面的configureMessageConverters方法来将默认的编码设置为utf-8即可解决, 当然你的类文件编码也必须要是utf-8的, …

leetcode-打家劫舍专题系列(动态规划)

198.打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个…

724.寻找数组的中心下标

题目&#xff1a;给你一个整数数组 nums &#xff0c;请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端&#xff0c;那么左侧数之和视为 0 &#xff0c;因为在下标的左侧不…

SpringBoot(容器功能)

文章目录 1.Configuration 添加/注入bean1.注入bean1.编写一个JavaBean&#xff0c;Monster.java2.创建一个config文件夹&#xff08;名字任意&#xff09;&#xff0c;用于存放配置Bean的类&#xff08;相当于配置文件&#xff09;3.BeanConfig.java4.测试使用 MainApp.java2.…

Regex正则表达式 --java学习笔记

正则表达式 由一些特定字符组成&#xff0c;代表的是一个规则作用一&#xff1a;校验数据格式是否合法作用二&#xff1a;在一段文本中查找满足要求的内容 String提供了一个匹配正则表达式的方法 public boolean matches&#xff08;String regex&#xff08;正则表达式&…

Delft3D建模、水动力模拟方法及在地表水环境影响评价中的技术应用

​任博士&#xff0c;长期从事地表水数值模拟研究与实践工作&#xff0c;具有资深的技术底蕴和专业背景。 1、掌握Delft3D的建模流程&#xff0c;包括基础数据的准备、计算网格的制作、模型的调试与率定、计算结果的处理等&#xff0c;熟悉软件的基本操作。 2、熟悉Delft3D网…

18个惊艳的可视化大屏(第24辑):通讯行业的应用

实时监控&#xff1a; 可视化大屏可以实时监控通讯网络的运行状态和性能指标。通过可视化展示网络的拓扑结构、设备状态、带宽利用率、延迟等数据&#xff0c;运维人员可以及时发现和解决网络故障&#xff0c;保障通讯网络的稳定性和可靠性。 故障诊断与分析&#xff1a; 可视…

YOLOv8 | 有效涨点,添加GAM注意力机制,使用Wise-IoU有效提升目标检测效果(附报错解决技巧,全网独家)

目录 摘要 基本原理 通道注意力机制 空间注意力机制 GAM代码实现 Wise-IoU WIoU代码实现 yaml文件编写 完整代码分享&#xff08;含多种注意力机制&#xff09; 摘要 人们已经研究了各种注意力机制来提高各种计算机视觉任务的性能。然而&#xff0c;现有方法忽视了…

C语言例3-20:使用逻辑运算符的例子

代码如下&#xff1a; #include<stdio.h> int main(void) {int x3, y100;float f11.0f, f22.1f;char cd; //d(100)printf("!x 的值为&#xff1a; %d\n",!x); //0printf("x||y 的值为&#xff1a; %d\n",x||y); //1print…

ai怎么制作ppt?保姆级的ai一键生成ppt教程来了!

面对市面上多如牛毛的 ai 生成 ppt 软件&#xff0c;哪一款更适合日常使用呢&#xff1f;与此同时&#xff0c;在选定一款 ai 软件后&#xff0c;如何用 ai 制作 ppt&#xff0c;也是很多人第一次使用 pptai 工具会面临的具体问题。 就着这些问题&#xff0c;在接下来的文章中…

有哪些便宜的通配符(泛域名)证书?怎么申请?

通配符&#xff08;泛域名&#xff09;SSL证书就是用来保护一个主域名以及所有二级子域名的证书&#xff0c;相对于单域名证书更具有性价比。 主要优势在于&#xff1a; 一&#xff1a;一个整数覆盖所有子域名 仅仅用一张证书就可以保护一个主域名以及所有子域名&#xff0c;…

HPA数据库及HPAanalyze包使用

关于HPA数据库的介绍&#xff1a;Human Protein Atlas 数据库 – 王进的个人网站 (jingege.wang) The Human Protein Atlas 文献 HPAanalyze: an R package that facilitates the retrieval and analysis of the Human Protein Atlas data | BMC Bioinformatics | Full Text …