JavaWeb—Vue的简单介绍

news2024/12/24 13:20:03

1 Vue介绍

  • 概述

    • Vue是一套构建用户界面的渐进式前端框架。
    • 只关注视图层,并且非常容易学习,还可以很方便的与其它库或已有项目整合。
    • 通过尽可能简单的API来实现响应数据的绑定和组合的视图组件。
  • 数据渲染

    • 数据库 --JDBC–> java程序 --http协议–> Vue容器 --数据绑定–> html标签.
  • 特点

    • 易用:在有HTMLCSSJavaScript的基础上,快速上手。
    • 灵活:简单小巧的核心,渐进式技术栈,足以应付任何规模的应用。
    • 性能:20kbmin+gzip运行大小、超快虚拟DOM、最省心的优化。
  • 官网
    • Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org)

2 Vue快速入门

开发步骤

  • ①引入vue.js

    • 1.1 先在项目中引入vue.js
    • 1.2 页面引入vue.js
  • ②定义一个div作为vue的容器

  • ③创建vue对象

  • 代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE入门案例</title>
    <!-- 引入资源 -->
    <script src="../Vue/vue.js"></script>
</head>
<body>
<div id="app">
    {{username}}
</div>
</body>

<script type="application/javascript">
    var vue = new Vue({
        el: "#app" ,
        data: {
           username: "张三" ,
        } ,
    }) ;
</script>
</html>

3 Vue的格式

var vue = new Vue({
    el : "id属性值", //绑定Vue容器
    data :{//定义变量
        参数1:1 ,
        参数2:2,
        ...
    }
    methods:{//定义方法
        函数名1(参数1,参数2,...){
    		方法体;
    		return 结果;
		},
        函数名2(参数1,参数2,...){
    		方法体;
    		return 结果;
		},        
        ...       
    },
    watches :{//定义监听器
        
    },
    created(){//钩子函数 , 监听页面加载完成
        
    },
    //....
});

4 Vue指令介绍

  • 概述
    • Vue指令就是带"v-"前缀的特殊属性 , 比如: v-html , v-text, v-if, v-for
  • 指令
    • v-bind:为HTML标签绑定属性值,如设置href、css样式等
    • v-model:在表单元素昂创建s双向数据绑定
    • v-on:为HTML标签绑定事件
    • v-if:条件性的渲染某元素,判定为true时渲染,否则不渲染
    • v-else
    • v-else-if
    • v-show:根据条件展示某数据,与v-if的区别在于切换的是display属性的值
    • v-for:渲染列表,遍历容器的元素或者对象的属性

5 Vue文本操作

  • 概述
    • 通过v-text, v-html, 插值表达式将vue数据插入到html标签内容中
    • v-text : 不能解析html标签 , 可以解决插值闪烁
    • v-html : 可以解析html标签 ,可以解决插值闪烁
    • 插值表达式 : 不能解析html标签 , 不能解决插值闪烁

插值闪烁:就是指在数据还没有加载出来时页面显示的内容,对于v-text和v-html两者显示的都为空,而插值表达式显示的就是表达式本身,如{{username}}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE文本操作</title>
</head>
<body>
<div id="div-test">
    {{msg}}<br/>
    <div v-text="msg1"></div><br/>
    <div v-html="msg2"></div>
</div>
</body>
<!--引入vue.js文件-->
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#div-test" ,
        data: {
            msg: "VUE入门案例" ,
            msg1: "<font color='red'>VUE入门案例</font>" ,
            msg2: "<font color='red'>VUE入门案例</font>"
        }
});
</script>
</html>

6 Vue的事件处理

  • 概述

    • 通过"v-on:事件名"进行事件绑定, 简写成"@事件名".
  • 代码示例

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>VUE事件绑定格式</title>
</head>
<body>
<div id="app">
    <button v-on:click="fn1()">按钮1</button>
    <button @click="fn2()">按钮2</button>
    <input type="text" @change="fn3()" />
</div>

</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app" ,
        data: {} ,

        methods: {
            fn1() {
               console.log("按钮一被点击");
            } ,

            fn2() {
                console.log("按钮二被点击");
            } ,

            fn3() {
                console.log("内容发生改变");
            } ,
        } ,
    }) ;
</script>
</html>

7 Vue事件修饰符

  • .stop : 阻止事件冒泡
  • .prevent : 阻止默认事件

代码示例1:.stop

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE事件修饰符 .stop</title>
</head>
<body>
<div id="app">
    <div @click="fn1()">
        <button @click="fn2()">按钮1</button>
    </div>
    <div @click="fn1()">
        <button @click.stop="fn2()">按钮2</button>
    </div>
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app" ,
        data: {} ,
        methods: {
            fn1() {
                console.log("事件冒泡触发") ;
            } ,

            fn2() {
                console.log("按钮被点击") ;
            }
        }
    }) ;
</script>
</html>

代码示例2 : .prevent

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE事件修饰符 .prevent</title>
</head>
<body>
<div id="app">
    <a href="http://www.baidu.com" @click="fn1()">超链接1</a>
    <a href="http://www.baidu.com" @click.prevent="fn1()">超链接2</a>
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app" ,
        dara: {} ,
        methods: {
            fn1() {
               console.log("超链接被点击")
            }
        }
    }) ;
</script>
</html>

8 Vue双向绑定

  • 概述
    • 数据既可以从html页面传输到Vue对象,也可以从Vue对象传输到html页面.
    • 之前的插值表达式、v-text、v-html可以看做是单向绑定,Vue实例中的变量影响了视图渲染,但是反过来就不行
    • 既然是双向绑定,一定是在视图中可以修改数据,这样就限定了视图的元素类型,目前v-model的可使用元素有: input、select、textarea、checkbox、radio

将输入框中的值动态显示到div标签中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE双向绑定</title>
</head>
<body>
<div id="app">
    <input type="text" v-model="username">
    <div v-text="username"></div>
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app" ,
        data: {
            username: ""
        } ,
        methods: {

        }
    }) ;
</script>
</html>

将选中的多选框中的值,动态显示到span中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE双向绑定</title>
</head>
<body>
<div id="app">
    <input type="checkbox" value="1" v-model="hobbys">1
    <input type="checkbox" value="2" v-model="hobbys">2
    <input type="checkbox" value="3" v-model="hobbys">3
    <input type="checkbox" value="4" v-model="hobbys">4
    <br/>
    <div v-text="hobbys"></div>
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app" ,
        data: {
            hobbys: ["1"]
        } ,
        methods: {

        }
    }) ;
</script>
</html>

Vue渲染后, 不能使用checked属性来对多选框进行选中操作,得使用给Vue变量设置默认值.

9 Vue列表渲染

  • 概述

    • 通过v-for指令实现列表渲染.
  • 语法

<!--
	item : 元素
	index : 所在脚标
	list : 数组/集合
-->
<标签 v-for="(item,index) in list">

</标签>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE列表渲染</title>
</head>
<body>
<div id="app">
    <table border="1px">
        <tr>
            <th>
                <input type="checkbox"/>
            </th>
            <th>id</th>
            <th>name</th>
            <th>age</th>
            <th>操作</th>
        </tr>
        <tr v-for="item in users">
            <td>
                <input type="checkbox"/>
            </td>
            <td v-text="item.id">id</td>
            <td v-text="item.name">name</td>
            <td v-text="item.age">age</td>
            <td>
                <a>删除</a>
                <a>修改</a>
            </td>
        </tr>
    </table>
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app" ,
        data: {
            users: [
                {
                    id: 1 ,
                    name: "张三" ,
                    age: 19
                } ,
                {
                    id: 2 ,
                    name: "李四" ,
                    age: 20
                } ,
                {
                    id: 3 ,
                    name: "王五" ,
                    age: 21
                } ,
                {
                    id: 4 ,
                    name: "赵六" ,
                    age: 22
                }
            ] ,
        } ,
    }) ;
</script>
</html>

10 Vue条件渲染

  • 概述
    • 通过v-if , v-show来实现条件渲染.
    • v-if : 元素不在dom树中.
    • v-show : 元素在dom树中, 只是修改display=none

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE条件渲染</title>
</head>
<body>
<div id="app">
    <div v-if="flag1">当条件为true时的v-if</div>
    <div v-else>v-else</div>

    <div v-show="flag1">当条件为true时的v-show</div>
    <div v-show="!flag1">当条件为false时的v-show</div>
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app" ,
        data: {
            flag1: true
        } ,
        methods: {

        }
    }) ;
</script>
</html>

11 Vue属性绑定

  • 概述
    • 通过"v-bind:属性"来属性绑定,简写成":属性".

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE属性绑定</title>
</head>
<body>
<div id="app">
    <input v-bind:value="msg" type="text">
    <a v-bind:href="url">百度</a>

    <br/>

    <input :value="msg" type="text">
    <a :href="url">百度</a>
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app" ,
        data: {
            msg: "HelloWorld" ,
            url: "http://www.baidu.com"
        } ,
        methods: {

        }
    }) ;
</script>
</html>

12 制作计算器

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE制作计算器</title>
</head>
<body>
<div id="app">
    <input type="text" v-model="num1">
    <select v-model="operate">
        <option value="+"></option>
        <option value="-"></option>
        <option value="*"></option>
        <option value="/"></option>
    </select>
    <input type="text" v-model="num2">
    <span> = </span>
    <span v-text="result"></span><br/>
    <button @click="count()">计算</button>
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app",
        data: {
            num1: "" ,
            num2: "" ,
            operate: "+" ,
            result: ""
        },
        methods: {
            count() {
                var firstNum = this.num1 ;
                var secondNum = this.num2 ;
                var operate = this.operate ;

                var result = eval(firstNum + operate + secondNum) ;
                this.result = result ;
            }
        }
    });
</script>
</html>

13 表单操作

  • 需求
    • 将表单中的数据传输到Vue对象中.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE属性绑定</title>
</head>
<body>
<div id="app">
    <form action="javascript:void(0)">
        姓名:<input type="text" v-model="user.username"/><br><br>
        密码:<input type="text" v-model="user.password"/><br><br>
        性别:<input type="radio" name="sex" value="male" v-model="user.sex"><input type="radio" name="sex" value="female" v-model="user.sex"><br/><br>
        爱好:<input type="checkbox" value="java" v-model="user.hobbys">java
        <input type="checkbox" value="html" v-model="user.hobbys">vue
        <input type="checkbox" value="php" v-model="user.hobbys">php<br/><br>
        职业:
        <select v-model="user.job">
            <option value="java工程师">java工程师</option>
            <option value="html工程师">html工程师</option>
            <option value="全栈工程师">全栈工程师</option>
        </select><br><br>
        个人简介<textarea v-model="user.introduce"></textarea> <br><br>
        <input type="submit" value="提交修改"/>
    </form>
    <br/>
    <div v-text="user.username"></div>
    <div v-text="user.password"></div>
    <div v-text="user.sex"></div>
    <div v-text="user.hobbys"></div>
    <div v-text="user.job"></div>
    <div v-text="user.introduce"></div>
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app",
        data: {
            user: {
                username: "" ,
                password: "" ,
                sex: "" ,
                hobbys:["java"] ,
                job: "" ,
                introduce: ""
            },
        },
        methods: {

        }
    });
</script>
</html>

14 Vue监听器

  • 概述
    • vue提供了监听机制,监听数据的变化
  • 分类
    • 监听简单类型数据的变化
watch: {
    数据名(newValue , oldVal) {
        // ......
    }
}
  • 监听对象中属性值的变化
watch: {
    "对象.属性": {
        handler: function(newVal , oldVal) {
            // ......
        }
    }
}

监听简单类型数据的变化:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE监听简单类型数据变化</title>
</head>
<body>
<div id="app">
 <input type="text" v-model="info">
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app",
        data: {
            info: ""
        },
        methods: {

        } ,
        watch: {
            info(newVal , oldVal) {
                console.log("info发生改变") ;
                console.log(oldVal + "---->" + newVal) ;
            }
        }
    });
</script>
</html>

监听对象中属性值的变化

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE监听对象中属性值的变化</title>
</head>
<body>
<div id="app">
<input type="text" v-model="user.name">
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app",
        data: {
            user : {
                id: 1 ,
                name: "张三" ,
                age: 18
            }
        },
        methods: {} ,
        watch : {
            "user.name" : {
                handler : function (newVal, oldVal) {
                    console.log("user.name发生改变") ;
                    console.log(oldVal + "---->" + newVal) ;
                }
            }
        }
    });
</script>
</html>

15 Vue的生命周期

在这里插入图片描述

在这里插入图片描述

  • 生命周期函数(钩子函数):
    • beforeCreate
      • 初始化事件和钩子函数,data和methods还未初始化,不能使用
    • created
      • 初始化data和methods
    • beforeMount
      • 生成vue虚拟dom树,无法获取vue渲染的标签内容
    • mounted
      • 生成vue真实dom树,可以获取vue渲染的标签内容
    • beforeUpdate
      • 修改数据后生成虚拟dom树,只能获取以前的标签内容
    • updated
      • 修改数据后生成的真实dom树,可以获取修改的标签内容
    • beforeDestory
      • 销毁之前,data和methods不可用
    • destoryed
      • vue实例销毁
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE生命周期</title>
</head>
<body>
<div id="app">
    <span id="span">{{msg}}</span>
    <button @click="updateMsg()">修改</button>
</div>
</body>
<script src="../Vue/vue.js"></script>
<script type="application/javascript">
    var vue = new Vue({
        el: "#app",
        data: {
            msg: "Hello World"
        },
        methods: {
            show() {
                console.log("show") ;
            } ,

            updateMsg() {
                this.msg = "你好,世界" ;
            }
        } ,

        beforeCreate() {
            //初始化事件和钩子函数,还不能使用data和methods,所以会报错。
            console.log(this.msg);
            this.show();
        } ,
        created() {
            //已经初始化data和methods,所以可以使用
            console.log(this.msg);
            this.show();
        },
        beforeMount(){
            //生成虚拟dom树,无法使用document获取标签内容
            var content = document.getElementById("spn").innerHTML;
            console.log("beforeMount : " + content);
        },
        mounted(){
            //生成真实dom树,可以使用document获取标签内容
            var content = document.getElementById("spn").innerHTML;
            console.log("mounted : " + content);
        },
        beforeUpdate(){
            //修改数据后,生成虚拟dom树,只会获取以前的数据
            var content = document.getElementById("spn").innerHTML;
            console.log("beforeUpdate : " + content);
        },
        updated(){
            //修改数据后,生成真实dom树,可以获取修改的数据
            var content = document.getElementById("spn").innerHTML;
            console.log("updated : " + content);
        },
        beforeDestroy() {
            //销毁之前,data和methods不可用
            console.log("beforeDestroy")
        },
        destroyed(){
            //vue实例销毁完成
            console.log("destroy")
        }


    });
</script>
</html>

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

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

相关文章

《MySQL实战45讲》——学习笔记23 “binlogredolog 的写入机制/组提交机制“

本篇主要介绍数据的可靠性有关的知识&#xff0c;包括binlog的写入机制和redolog的写入机制&#xff0c;通过了解这些机制从而可以在MySQL的IO性能瓶颈上做些优化&#xff1b;前文介绍了MySQL在可靠性、性能相关的概念&#xff0c;包括WAL技术、redolog与binlog、2阶段提交、ch…

阿里云图标使用 (symbol 引用方式)

阿里云图标网址: https://www.iconfont.cn/ 一、登录注册 这个简单&#xff0c;就不说了 二、给当前项目找图库 2.1、添加项目 2.2、寻找图标添加入库 添加入库 2.3、打开入库 的图标添加到指定项目 添加到当前项目 1 2 三、项目使用图标 ( symbol 引用方式) 3.1、下…

《HelloGitHub》第 82 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01;简介HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。https://github.com/521xueweihan/HelloGitHub这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Pyth…

Studio One6有哪些新功能及系统配置要求介绍

Studio One6全新版本上线记录、生产、混合、掌握和执行所有操作。从工作室到舞台&#xff0c;Studio One6以易用为核心&#xff0c;是您的创意合作伙伴。当你准备好登上舞台时&#xff0c;Studio One就在那里。只有Studio One从最初的灵感到完整的制作&#xff0c;最终混音到精…

一个数码管显示0-F

数码管的一种是半导体发光器件&#xff0c;数码管可分为七段数码管和八段数码管&#xff0c;区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP&#xff08;decimal point&#xff09;&#xff0c;其基本单元是发光二极管。七段数码管是一类价格便宜使用简…

VuePress 搭建结合GitHub Pages CI

简介 VuePress 是尤雨溪&#xff08;vue.js 框架作者&#xff09;4月12日发布的一个全新的基于 vue 的静态网站生成器&#xff0c;实际上就是一个 vue 的 spa 应用&#xff0c;内置 webpack&#xff0c;可以用来写文档。详见 VuePress中文网 其实类似的建站工具有很多&#x…

Java多线程 - 创建线程池的方法 - ThreadPoolExecutor和Executors

文章目录线程池(重点)线程池介绍实现线程池的方式方式一: 实现类ThreadPoolExecutorThreadPoolExecutor构造器的参数线程池处理Runnable任务线程池处理Callable任务方式二: Executors工具类创建线程池线程池(重点) 线程池介绍 什么是线程池? 线程池就是一个可以复用线程的技…

以太网报文详解

以太网数据帧格式 以太网链路传输的数据包称做以太帧&#xff0c;或者以太网数据帧。在以太网中&#xff0c;网络访问层的软件必须把数据转换成能够通过网络适配器硬件进行传输的格式。 以太帧的工作机制 当以太网软件从网络层接收到数据报之后&#xff0c;需要完成如下操作&am…

模拟实现stack queue/dequeue/适配器/优先级队列/仿函数

⭐前言&#xff1a;学习C的STL&#xff0c;我们不仅仅要要求自己能够熟练地使用上层语法&#xff0c;我们还必须要求自己了解其底层原理&#xff0c;不需要了解得太深入&#xff0c;但一定得知道我们写出的各种代码后面&#xff0c;究竟采用了哪种设计思想&#xff0c;为什么要…

口碑巨制《流浪地球2》,再燃中国科幻电影新高度!

2019年&#xff0c;中国本土科幻电影《流浪地球》以炸裂之势吸引一众目光。上映26天&#xff0c;票房突破45亿&#xff0c;强势开启中国科幻电影的元年。如今时隔4年&#xff0c;《流浪地球2》再度登陆春节档&#xff0c;票房口碑双丰收&#xff0c;上映四天票房破13亿、淘票票…

Android渗透测试12:IDA动态调试so

0x00 前言 上一篇分享了使用 Android studio 和 Jeb 对 Apk 文件直接进行动态调试&#xff0c;本文将分享使用 IDA pro 调试 so 。 调试的 apk 文件还是使用 CTF案例4 的文件&#xff0c;已经上传到知识星球&#xff0c;可自行下载 本文涉及技术&#xff1a; IDA pro 工具使…

论文解读 - 城市自动驾驶车辆运动规划与控制技术综述 (第4部分)

文章目录&#x1f697; IV. Mothon Planning&#xff08;运动规划&#xff09;&#x1f7e2; D. Graph Search Methods&#xff08;图搜索算法&#xff09;&#x1f7e5; 1) Lane Graph&#xff08;车道图&#xff09;&#x1f7e7; 2) Geometric Methods&#xff08;几何方法&…

AtCoder Beginner Contest 287 A-G 赛时思路+正解

一把给我加到1219了&#xff0c;青大小蒟蒻表示很开心。 A - Majority 题意 问你"For""For""For"字符串数量是否比"Against""Against""Against"数量多。 思路 mapmapmap暴力即可。 A题代码 B - Postal Card 题意…

电脑技巧:教你关闭Win11内存压缩,解决电脑卡顿的问题

很多朋友都注意到&#xff0c;Win11默认开启了内存压缩功能。内存压缩顾名思义&#xff0c;可以压缩内存中的数据&#xff0c;让内存占用更少&#xff0c;同时减少Swap频次&#xff0c;带来更高的I/O效率。 但与此同时&#xff0c;压缩数据需要耗费CPU资源&#xff0c;一些朋友…

Dr4g0n-b4ll靶机总结

Dr4g0n-b4ll靶机渗透测试总结 靶机下载地址: https://download.vulnhub.com/dr4g0nb4ll/Dr4g0n-b4ll.zip 打开靶机,使用nmap扫描靶机的ip和所有开放的端口 可以看到靶机开放了80端口和22端口 根据80端口打开网站 信息收集,目录爆破 在robots.txt下发现一串base64编码 eW91IG…

编写循环(RH294)

循环这东西你早就懂的不是么就像python里的for一样在ansible中 使用loop关键字来实现迭代简单循环简单循环中一般使用loop关键字来开始循环使用循环变量item来存储每个迭代过程中使用的值举个例子 栗子啊首先让我们拿出两个任务片段- name: Postfix is runningservice:name: po…

索引15连问

前言 大家好&#xff0c;我是田螺。 金三银四很快就要来啦&#xff0c;准备了索引的15连问&#xff0c;相信大家看完肯定会有帮助的。 公众号&#xff1a;捡田螺的小男孩 1. 索引是什么&#xff1f; 索引是一种能提高数据库查询效率的数据结构。它可以比作一本字典的目录&am…

从C语言的使用转换到C++(下篇)——刷题、竞赛篇

目录 一、CSTL的简介 二、STL的使用详解 2、1 STL之动态数组vector的使用 2、2 STL之集合set的使用 2、3 STL之映射map的使用 2、4 STL之栈stack的使用 2、5 STL之队列queue的使用 2、6 STL之unordered_map和unordered_set的使用 三、总结 标题&#xff1a;从C语言的使用转换…

还不会SpringBoot项目模块分层?来这手把手教你

文章目录前言&#x1f34a;缘由⏲️本文阅读时长&#x1f3af;主要目标&#x1f468;‍&#x1f393;试用人群&#x1f381;快速链接&#x1f369;水图正文&#x1f96b;1.IDEA新建项目&#x1f32d;2.创建子模块-dependencies(依赖层)&#x1f3af;重点&#x1f36a;3.创建子模…

【寒假小练】day2

前言 日积跬步&#xff0c;能至千里。 水平有限&#xff0c;不足之处望请斧正。 选择题 1、以下程序运行后的输出结果是( ) #include <stdio.h> void fun(char **p) {int i;for(i 0; i < 4; i) {printf("%s", p[i]); } int main() {char *s[6] {"…