Vue基础(一) 基础用法
1.取消生产提示
Vue.config.productionTip = false;
Vue.config.devtools = true; //运行开发调试
2.hello小案例
需要注意如下几点:
1.必须要有一个模板,其实就是一个html组件
2.新建一个Vue实例,并且通过el与容器建立绑定关系,容器里面就是css的选择器写法。
3.模板里面可以通{{}}插值表达式来获取容器中的对象,里面可以写js的表达式,并且data里面的内容发生改变后,容器数据也会变化。
<div id="root"><h1>{{name}}</h1></div><script>Vue.config.productionTip = false;Vue.config.devtools = true;new Vue({el: '#root', //和一个容器建立绑定关系data: {name:'尚硅谷'}})</script>
3.数据绑定
3.1 插值语法
作用:单向绑定,并且只能放在标签值中
<!-- 方式一:插值语法 --><div id="root"><h1>hello,{{name}}</h1></div><script>new Vue({el: '#root',data:{name:'张三'}})</script>
3.2 v-bind
作用:单向绑定,可以绑定值也可以绑定内容比如v-bind:style="name"可以简写为:style="name"
<div id="root"><!-- <input type="text" v-bind:value="name"> --><input type="text" :value="name"></div><script>new Vue({el: '#root',data:{name:'张三'}})</script>
3.3 v-model
作用:双向绑定,只可以绑定可以输入内容的value属性,比如v-model:value="name"可以简写为:v-model="name"
<div id="root"><input type="text" v-model:value="name"></div><script>new Vue({el:"#root",data:{name:"张三"}})</script>
4.模板和Vue实例的绑定
4.1 通过el方式绑定
<div id="root"><input type="text" v-model="name"></div><script>Vue.config.devtools = true;new Vue({el: '#root',data: {name: "张三"}}) </script>
4.2 通过$mount的方式绑定
<div id="root"><input type="text" v-model="name"></div><script>Vue.config.devtools = true;let vm = new Vue({el: '#root',data: {name: "张三"}}) vm.$mount('root')</script>
7.计算属性
7.1 计算属性的基本使用
定义:计算属性本来不存在,需要根据其他属性计算得出。
优势:计算属性相比于methods方法可以走缓存。
用法:第一次渲染或者计算属性所依赖的值发生改变的时候,会进行计算得到新值,调用get方法。
7.2 计算属性的基本使用
new Vue({el: "#root",data: {firstName: "",lastName: ""},computed: {fullName: {get() {return this.firstName + "-" + this.lastName;},set(value) {//修改逻辑}}}})
7.3 计算属性的简写
new Vue({el: "#root",data: {firstName: "",lastName: ""},computed: {fullName() {return this.firstName + "-" + this.lastName;}}})
8.监视属性
8.1 监视属性基本用法
1.注意点
1.监视属性表示当属性发生变化的时候会触发回调方法。
2.监视的属性必须存在,才能被监视
2.基本写法
new Vue({el: "#root",data: {weather: "真好",isHot: true},watch: {isHot: {handler(newval, oldval) {console.log(newval, oldval)this.weather = "真冷"}}}})
或者新建完vm后绑定
let vm = new Vue({el: "#root",data: {weather: "真好",isHot: true}// watch: {// isHot: {// handler(newval, oldval) {// console.log(newval, oldval)// this.weather = "真冷"// }// }// }})vm.$watch('isHot',{immediate: true,handler(newval, oldval) {console.log(newval, oldval)}})
8.2 深度监视
let vm = new Vue({el: "#root",data: {weather: "真好",isHot: true,number: {a: 1,b: 2}},watch: {number: {deep: true, //如果是个多级对象,需要用deep来表示监听对象里面的内容handler(newval, oldval) {console.log(newval, oldval)}}}})
8.3 监视属性简写
let vm = new Vue({el: "#root",data: {weather: "真好",isHot: true,number: {a: 1,b: 2}},watch: {isHot(newval, oldval) {console.log(newval, oldval)}}})
8.4 监视属性和计算属性的区别
计算属性能干的监视属性都能做,但是监视属性能够实现某些功能(比如某个值发生改变,产生的影响定时触发)
9.vue中函数的写法
1.如果是vue实例管理的函数,写普通函数,vue保证这些函数的this是vue实例或者VueComponent实例。
2.如果是其他函数,比如ajax回调函数,promise回调函数,定时器回调函数写箭头函数。
10.vue中的动态样式
<div id="root"><div :class="classObj"></div><div :style="styleObj"></div></div><script>let vm = new Vue({el: "#root",data: {className:'red', //适用于样式名称不确定classArr:['pink1','pink2','pink3'], //适用于样式名称和个数不确定classObj:{ //适用于名称个数确定,但是用不用不确定'red':true,"blue":false},styleObj:{fontSize:10+'px'}}})
11.条件渲染
<div id="root"><div v-show="a === 1">1</div> //表示a为1的时候才会展示<div v-if="a === 1">1</div> //如果第一个判断满足,后面的逻辑便不会走<div v-else-if="a === 2">2</div><div v-else>3</div></div><script>let vm = new Vue({el: "#root",data: {a: 1}})
注意:v-show是隐藏掉元素,但是v-if是元素不存在。
12.for循环
12.1 基本使用
其中user表示元素,index表示索引,从0开始
<div id="root"><ul><li v-for="(user,index) in users" :key="user.id">{{user.name}}</li></ul></div><script>new Vue({el: "#root",data: {users: [{ id: 1, name: "张三", age: 12 },{ id: 2, name: "李四", age: 33 },{ id: 3, name: "王五", age: 24 },]}})</script>
12.2 key的作用
Vue渲染的步骤如下:
1.如果数据发生变化,Vue会根据数据生成新的虚拟Dom,并且将key作为该Dom的唯一标识。
2.根据Dom进行相同Key的比较,入股以前的Dom存在,便会用以前的Dom进行渲染,如果未找到,便会创建新的虚拟Dom。
所以在选择Key的时候,尽量选择唯一id作为key。
12.3 列表的作用
1.关键词搜索
<div id="root"><input type="text" v-model="keyword"><button>升序</button><button>降序</button><button>原来顺序</button><ul><li v-for="(user,index) in filPerson" :key="user.id">{{user.name}}</li></ul></div><script>new Vue({el: "#root",data: {keyword: "",users: [{ id: 1, name: "张三", age: 12 },{ id: 2, name: "李四", age: 33 },{ id: 3, name: "王五", age: 24 },{ id: 4, name: "张冬梅", age: 2 }]},computed: {filPerson() {return this.users.filter(user => { return user.name.indexOf(this.keyword) !== -1 })}}})
2.排序
<div id="root"><input type="text" v-model="keyword"><button @click="sortType = 'asc'">升序</button> <button @click="sortType = 'desc'"> 降序</button><button @click="sortType=''">原来顺序</button><ul><li v-for=" (user,index) in filPerson" :key="user.id">{{user.name}}--{{user.age}}</li></ul></div><script>new Vue({el: "#root",data: {keyword: "",sortType: "",users: [{ id: 1, name: "张三", age: 12 },{ id: 2, name: "李四", age: 33 },{ id: 3, name: "王五", age: 24 },{ id: 4, name: "张冬梅", age: 2 }]},computed: {filPerson() {console.log("sortType=", this.sortType)const arr = this.users.filter(user => { return user.name.indexOf(this.keyword) !== -1 })if (this.sortType === "asc") {arr.sort((p1, p2) => {return p1.age - p2.age})} else {arr.sort((p1, p2) => {return p2.age - p1.age})}return arr}}})
13. Vue是如何监视数据的
13.1 Vue是如何监视数据的
数据劫持,也就是会给实例中的每个属性生成set和get方法,当值发生改变的时候,会调用setter方法,重新解析模板。
如果是必须是在Vue实例创建时的属性才能被劫持,后面添加的属性不会被监视,必须要用Vue.set才能添加属性。
<script>let vm = new Vue({el: "#root",data: {user: {name: "张三"}},methods: {addAge() {Vue.set(this.user, "age", 12)}}})</script>
注意:上面不能给Vue实例和Vue中的data添加属性。
13.2 Vue如何检测数组
可以使用push,pop,shift,unshift,reverse等方法可以被监听。
14.如何收集表单中的数据
<div id="root"><!-- 提交表单的时候一定会触发提交时间,可以给提交事件绑定方法 --><form @submit.prevent="submit"><!-- 如果可以有文本输入便,直接v-model会自动绑定里面的value属性 -->账号: <input type="text" name="username" v-model="user.userName"> <br>密码:<input type="password" name="pwd" v-model="user.password"> <br><!-- v-model.number可以将收集到的数据直接转换成number类型 -->年龄:<input type="number" name="age" v-model.number="user.age"> <br><!-- 如果是单选 没有value值,可以给他设置一个value值,再用v-model进行绑定 -->性别: 男<input type="radio" name="sex" v-model="user.sex" value="male">女<input type="radio" name="sex" v-model="user.sex" value="female"> <br><!-- 如果是多选,也需要一个value值,来表示每个选项的内容,并且v-model进行绑定,并且接收内容需要是一个数组 -->爱好: 吃饭<input type="checkbox" v-model="user.hobby" value="eat">睡觉<input type="checkbox" v-model="user.hobby" value="sleep">打豆豆<input type="checkbox" v-model="user.hobby" value="dadoudou"><br>所属校区: <select v-model="user.area"><option value="北京">北京</option><option value="上海">上海</option><option value="重庆">重庆</option></select><br><!-- 加上lazy表示失去焦点才收集数据 -->其他信息:<textarea v-model.lazy="user.other"></textarea> <br>我接受协议<input type="checkbox" name="" id=""><button>提交</button></form></div><script>let vm = new Vue({el: "#root",data: {user: {userName: "",password: "",age: "",sex: "",hobby: [],area: "",other: ""}},methods:{submit() {window.alert("提交数据")}}})</script>
15.过滤器
15.1 局部过滤器
只能在该组件内使用
<body><div id="root"><h4>{{this.name | spliceStr}}</h4></div><script>new Vue({el:"#root",data:{name:"1234567890"},filters:{spliceStr(value) {console.log(value)return value.slice(0,5)}}})</script></body>
15.2 全局过滤器
能够在所有的vue组件里面使用
<script>Vue.filter('spliceStr',function(value){console.log(value)return value.slice(0,5)})new Vue({el:"#root",data:{name:"1234567890"},// filters:{// spliceStr(value) {// console.log(value)// return value.slice(0,5)// }// }})</script>
16. Vue的内置指令
16.1 v-text
v-text=“text”其实就是将text当成一个文本,放到dom节点中间。类似于以前的innerText
16.2 v-html
v-html="html"其实就是将html当做html一个dom节点,放到当前dom节点中间,类似于以前的innerHtml,但是该方法存在xss漏洞。
16.3 v-once
v-once绑定的属性,表示第一次需要动态解析过后,后面值便固定写死
16.4 v-cloak
如果vue加载js资源特别慢,会直接将html渲染上去,然后解析vue中的js代码,然后再将vue中的插值语法给替换掉,会有让用户看到vue中的代码。可以给标签加上v-cloak,加上后,在解析完成vue过后,会删掉该标签。可以结合css代码使用。
[v-cloak] {display:false
}
16.5 v-pre
v-pre标签加上过后,会跳过编译,如果没有vue标签或者插值语法,可以加上该标签,提高编译速度。
17. vue自定义命令
17.1 自定义命令的基本用法
可以在directives里面写自定义方法,比如big方法,然后可以利用v-big来作为指令绑定元素。
注意:
1.big方法会接受两个参数,分别是element,表示的是v-big绑定的dom标签,binding表示的是v-big后面表达式的内容。
2.采用函数写法,只会在指令与标签绑定时,以及指令所在模板重新解析时会调用该方法。
<body><div id="root"><h2>当前我的值为{{n}}</h2>放大10倍后的值为:<h3 v-big="n"></h3> <br><button @click="n++">点我加1</button></div><script>let vm = new Vue({el:'#root',data() {return {n:1}},directives:{big(elment,binding) {console.log(elment,binding.value)elment.innerText=10 * binding.value}}})</script>
17.2 自定义命令的完整写法
let vm = new Vue({el:'#root',data() {return {n:1}},directives:{big(elment,binding) {console.log(elment,binding.value)elment.value=10 * binding.value//并且自动获取焦点elment.focus()}}})
比如上面的代码,按理说应该在执行big方法的时候,获取焦点,但是因为这种写法只会在命令与模板绑定,更新模板的时候会执行big函数,此时元素还未插入模板,所以并不会执行自动获获取焦点。
<script>let vm = new Vue({el: '#root',data() {return {n: 1}},directives: {big: {bind(elment, binding) {console.log(elment, binding.value)elment.value = 10 * binding.value//并且自动获取焦点elment.focus()},inserted(elment, binding) {console.log(elment, binding.value)elment.value = 10 * binding.value//并且自动获取焦点elment.focus()},update(elment, binding) {console.log(elment, binding.value)elment.value = 10 * binding.value//并且自动获取焦点elment.focus()}}}})</script>
注意:
1.这里bind表示指令与标签绑定时执行该方法
2.inserted表示插入模板时执行该方法
3.update表示更新模板时执行该方法
相关文章:
Vue基础(一) 基础用法
1.取消生产提示 Vue.config.productionTip false; Vue.config.devtools true; //运行开发调试 2.hello小案例 需要注意如下几点: 1.必须要有一个模板,其实就是一个html组件 2.新建一个Vue实例,并且通过el与容器建立绑定关系࿰…...
文心一言开发指南08——千帆大模型平台推理服务API
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 推理服务API概述 百度智能云千帆平台提供了丰富的推理服务API,包括对话Chat、续写Completions、向量Embeddings、批量预测等API能力。 对话Chat:支…...
矩阵区域和 --- 前缀和
目录 一:题目 二:算法原理 三:代码 一:题目 题目链接:1314. 矩阵区域和 - 力扣(LeetCode) 二:算法原理 三:代码 class Solution { public:vector<vector<int…...
全局id生成器生产方案
1.只要求不重复版本(常用于分布式确定一个实体的id) uuid( MAC 地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素,计算机基于这些规则生成的 UUID 是肯定不会重复的。) UUID 作…...
DES与AES算法深度解析:原理、流程与实现细节
DES与AES算法深度解析:原理、流程与实现细节 1. DES算法详解 1.1 算法架构 DES采用16轮Feistel网络结构,核心处理流程如下: 输入64位明文 → IP初始置换 → 16轮迭代处理 → 左右交换 → IP⁻末置换 → 输出64位密文 1.2 核心处理流程 …...
大厂Java面试深度解析:Dubbo服务治理、WebSocket实时通信、RESTEasy自定义注解与C3P0连接池配置实践
第一轮基础问答 面试官:请解释Dubbo服务注册发现的完整流程,以及Sentinel如何实现流量控制? xbhog:Dubbo通过Registry协议将服务地址注册到ZooKeeper,消费者订阅服务节点变更。Sentinel通过ResourceRegistry注册资源…...
【Qt】Qt换肤,使用QResource动态加载资源文件
【Qt】使用QResource动态加载资源文件 0.前言 对于简单的应用,我们可以直接读取 QSS 样式表文件来实现换肤。但一般样式里还带有图片等资源的路径,如果通过相对路径来加载,不便于管理,不过好处是替换图片方便。我们也可以使用 Q…...
五种机器学习方法深度比较与案例实现(以手写数字识别为例)
正如人们有各种各样的学习方法一样,机器学习也有多种学习方法。若按学习时所用的方法进行分类,则机器学习可分为机械式学习、指导式学习、示例学习、类比学习、解释学习等。这是温斯顿在1977年提出的一种分类方法。 有关机器学习的基本概念,…...
【18】爬虫神器 Pyppeteer 的使用
目录 一、Pyppeteer 介绍 二、安装库 三、快速上手 Python爬虫案例 | Scrape Center 在前面我们学习了 Selenium 的基本用法,它功能的确非常强大,但很多时候我们会发现 Selenium 有一些不太方便的地方,比如环境的配置,得安装好…...
封装js方法 构建树结构和扁平化树结构
在JavaScript中,构建树结构和将树结构扁平化是常见的操作。下面我将提供两个方法,一个用于从扁平化的数据中构建树结构,另一个用于将树结构扁平化。 构建树结构 假设我们有一个扁平化的数据列表,每个节点对象包含id和parentId属…...
服务器和数据库哪一个更重要
在当今数字化的时代,服务器和数据库都是构建和运行各种应用系统的关键组成部分,要说哪一个更重要,其实很难简单地给出定论。 服务器就像是一个强大的引擎,为应用程序提供了稳定的运行环境和高效的计算能力。它负责接收和处理来自…...
Nginx 核心功能与 LNMP 架构部署
一、基于授权的访问控制 1.1 功能概述 Nginx 的基于授权的访问控制通过用户名和密码验证机制,限制用户对特定资源的访问。其实现逻辑与 Apache 类似,但配置更简洁,适用于需保护敏感目录或页面的场景(如管理后台)。 …...
Python程序开发,麒麟系统模拟电脑打开文件实现
在Python开发中,模拟电脑打开文件操作(即用默认程序打开文件),可以使用os.system()方法或subprocess模块来执行系统命令。以下是使用os库实现模拟打开文件的代码示例: 使用os.system()方法 import osfile_path &quo…...
打造惊艳的渐变色下划线动画:CSS实现详解
引言:为什么需要动态下划线效果? 在现代网页设计中,微妙的交互效果可以显著提升用户体验。动态下划线特效作为一种常见的视觉反馈方式,不仅能够引导用户注意力,还能为页面增添活力。本文将深入解析如何使用纯CSS实现一…...
gitmodule怎么维护
目录 ci-cd脚本 豆包文档 ci-cd脚本 git submodule init git submodule update cd /var/lib/jenkins/workspace/wvp-server-Dji/wvp-server git checkout Dji2 cd /var/lib/jenkins/workspace/wvp-server-Dji/cloud-sdk git checkout master 豆包文档...
企业战略管理(设计与工程师类)-2-战略规划及管理过程-2-外部环境分析-PESTEL模型实践
PESTEL在AFI框架中的作用 AFI 战略框架(Analyze, Formulate, Implement——哈佛大学商学院的教授 Michael Porter)是企业战略管理中的一个重要理论模型,帮助企业系统性地分析和制定战略。 作为第一阶段Analyze的第一步,PESTEL…...
基于arduino的温湿度传感器应用
温湿度传感器深度解析与多平台开发实战 一、温湿度传感器代码实现(Arduino平台) 1. 基础传感器驱动(DHT11) #include <DHT.h> #define DHTPIN 2 #define DHTTYPE DHT11DHT dht(DHTPIN, DHTTYPE);void setup() {Serial.begin(9600);dht.begin(); }void loop() {del…...
【AI提示词】机会成本决策分析师
提示说明 具备经济学思维的决策架构师,擅长通过机会成本模型分析复杂选择场景 提示词 # Role: 机会成本决策分析师## Profile - language: 中文 - description: 具备经济学思维的决策架构师,擅长通过机会成本模型分析复杂选择场景 - background: 经济…...
基于Springboot + vue实现的列书单读书平台
项目描述 本系统包含管理员和用户两个角色。 管理员角色: 用户管理:管理系统中所有用户的信息,包括添加、删除和修改用户。 书单信息管理:管理书单信息,包括新增、查看、修改、删除和查看评论。 在线书店管理&…...
「Mac畅玩AIGC与多模态07」开发篇03 - 开发第一个 Agent 插件调用应用
一、概述 本篇介绍如何在 macOS 环境下,基于 Dify 平台自带的网页爬虫插件工具,开发一个可以提取网页内容并作答的 Agent 应用。通过使用内置插件,无需自定义开发,即可实现基本的网页信息提取与智能体回答整合。 二、环境准备 1. 确认本地部署环境 确保以下环境已搭建并…...
Headers池技术在Python爬虫反反爬中的应用
1. 引言 在当今互联网环境中,许多网站都部署了反爬虫机制,以防止数据被大规模抓取。常见的反爬手段包括: User-Agent检测(检查请求头是否来自浏览器)IP频率限制(短时间内同一IP请求过多会被封禁ÿ…...
端到端电力电子建模、仿真与控制及AI推理
在当今世界,电力电子不再仅仅是一个专业的利基领域——它几乎是每一项重大技术变革的支柱。从可再生能源到电动汽车,从工业自动化到航空航天,对电力转换领域创新的需求正以前所未有的速度增长。而这项创新的核心在于一项关键技能:…...
Java云原生+quarkus
一、Java如何实现云原生应用? 传统的 Java 框架(如 Spring Boot)虽然功能强大,但在云原生场景下可能显得笨重。以下是一些更适合云原生的轻量级框架: Quarkus(推荐) 专为云原生和 Kubernetes 设计的 Java 框架。支持…...
在yolo中Ultralytics是什么意思呢?超越分析的智能
在YOLO(You Only Look Once)目标检测框架中,Ultralytics 是一家专注于计算机视觉和机器学习技术的公司,同时也是YOLO系列模型(如YOLOv5、YOLOv8等)的官方开发和维护团队。以下是关键点解析: 1. …...
TRAE历史版本下载参考
https://lf-cdn.trae.com.cn/obj/trae-com-cn/pkg/app/releases/stable/{此处替换为版本号}/win32/Trae%20CN-Setup-x64.exe 比如版本号为1.0.11939 那么链接为https://lf-cdn.trae.com.cn/obj/trae-com-cn/pkg/app/releases/stable/1.0.11939/win32/Trae%20CN-Setup-x64.exe …...
C++类与对象基础
目录 1.取地址运算符重载 2.初始化列表 3.类型转换 既前面所讲的C类与对象知识,C类与对象——基础知识-CSDN博客 C类与对象——构造函数与析构函数-CSDN博客 C类与对象——拷贝构造与运算符重载_c拷贝对象和对象调用同一函数的输出区别怎么实现-CSDN博客本章我们…...
C# 继承详解
继承是面向对象程序设计(OOP)中的核心概念之一,它极大地增强了代码的重用性、扩展性和维护性。本篇文章将详细讲解C#中的继承机制,包括基础概念、语法特法、多重继承(通过接口实现)、继承的规则和实际应用示…...
多源数据整合与数据虚拟化:构建灵活、高效的数据架构
多源数据整合与数据虚拟化:构建灵活、高效的数据架构 引言 随着大数据时代的到来,数据的多样性和复杂性已经成为了企业面临的一大挑战。不同来源的数据在格式、结构以及存储方式上各不相同,传统的单一数据源管理方法难以应对海量且多样化的数据需求。多源数据整合与数据虚拟…...
代码随想录第39天|leetcode198.打家劫舍、leetcode213.打家劫舍II 、leetcode337.打家劫舍III
1.198. 打家劫舍 - 力扣(LeetCode) 当前房屋偷与不偷取决于前一个房屋和前两个房屋是否被偷,所以就可以得到相应的dp数组。 即,dp[i] max(dp[i-2]nums[i],dp[i-1]); int rob(vector<int>& nums) {//dp[i]:…...
C++ 如何计算两个gps 的距离
C 完全可以计算 三维空间中的 WGS84 坐标点之间的精确欧氏距离。关键是: 要先把经纬度 海拔 (lat, lon, alt) 转换成 ECEF(地心地固坐标系),然后计算欧氏距离即可。 ✅ 使用 GeographicLib::Geocentric 实现三维距离计算…...
通过全局交叉注意力机制和距离感知训练从多模态数据中识别桥本氏甲状腺炎|文献速递-深度学习医疗AI最新文献
Title 题目 Hashimoto’s thyroiditis recognition from multi-modal data via globalcross-attention and distance-aware training 通过全局交叉注意力机制和距离感知训练从多模态数据中识别桥本氏甲状腺炎 01 文献速递介绍 桥本氏甲状腺炎(HT)&a…...
网络原理—应用层和数据链路层
IP协议 ⭐IP协议报头上面的知识 地址管理 使用一套地址体系(IP协议),来描述互联网上每个是被所在的位置。 IP数据报的长度(拆包和组包) 可以对CUP进行拆包,可以多个IP报头装一个CUP数据。 8位生存时间(TTL) 这里的时间不是传统意义上的,…...
Cell Res | Stereo-seq揭示人类肝癌浸润区促进肝细胞-肿瘤细胞串扰、局部免疫抑制和肿瘤进展
有同学给了一篇23年的空间文章,研究的一个核心概念是肿瘤边缘的"侵袭区",文章中定义的是以肿瘤边缘为中心的500微米宽的区域,这里是肿瘤细胞侵袭和转移的活跃前沿,包含复杂的细胞成分及独特的分子特征,存在免…...
Mybatis-plus代码生成器的创建使用与详细解释
Mybatis-plus代码生成器的创建使用与详细解释 一、代码生成器概述 1. 定义(什么是代码生成器) 在软件开发过程中,存在大量重复性的代码编写工作,例如实体类、Mapper 接口、Service 接口及实现类等。代码生成器就是为了解决这类问题而诞生的工具。MyBa…...
swagger2升级至openapi3的利器--swagger2openapi
背景: 因为项目需要升级JDK,涉及到swagger2升级至openapi3的情况。由于swagger 2和openapi 3的语法差距太大,需要对yaml进行升级。无奈单个yaml文件的内容太大,高至4万多行,手动进行语法的转换肯定是不可能了ÿ…...
私有云与虚拟化攻防2(OpenStack渗透场景,大部分云平台都是基于此进行二次开发)
虚拟化和私有云的一些区别 虚拟化只是简单资源虚拟化,一虚多私有云除了能够实现虚拟化以外更重要的是服务自助化、自动化什么是Openstack OpenStack是一个开源的云计算管理平台项目,是属于基础设施即服务(IaaS),是一个云操作系统。 Nova(控制 ) 提供计算资源,虚拟机、容…...
前缀和 后缀和 --- 寻找数组的中心下标
题目链接 寻找数组的中心下标 给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为…...
关于插值和拟合(数学建模实验课)
文章目录 1.总体评价2.具体的课堂题目 1.总体评价 学校可以开设这个数学建模实验课程,我本来是非常的激动地,但是这个最后的上课方式却让我高兴不起哦来,因为老师讲的这个内容非常的简单,而且一个上午的数学实验,基本…...
深入学习解读:《数据安全技术 数据分类分级规则》【附全文阅读】
该文详细阐述了数据安全技术的数据分类分级规则,内容分为基本原则、数据分类规则、数据分级规则及数据分类分级流程四大部分。 基本原则强调科学实用、动态更新、就高从严及53原则(虽表述不清,但可理解为多重原则的结合),同时要求边界清晰、点面结合。 数据分类规…...
Windows环境下用pyinstaller将python脚本编译为exe文件
下载 https://pypi.org/project/pyinstaller/#filespyinstaller-6.13.0-py3-none-win_arm64.whl 安装 cmd命令行中执行:pip install pyinstaller-6.13.0-py3-none-win_amd64.whl得先安装pythonpip若找不到命令,需要加到环境变量 测试 pyinstaller --ve…...
每日算法-250429
每日 LeetCode 题解 (2025-04-29) 大家好!这是今天的 LeetCode 刷题记录,主要涉及几道可以使用贪心策略解决的问题。 2037. 使每位学生都有座位的最少移动次数 题目描述: 思路 贪心 解题过程 要使总移动次数最少,直观的想法是让每个学生…...
Go语言Context机制深度解析:从原理到实践
一、Context概述 Context(上下文)是Go语言并发编程的核心机制之一,主要用于在goroutine之间传递取消信号、截止时间和其他请求范围的值。Google在Go 1.7版本中将其引入标准库,现已成为处理并发控制和超时的标准方案。 核心作用 …...
大数据学习(115)-hive与impala
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…...
php学习笔记(全面且适合新手)
以下是专为 PHP 7.4 初学者设计的全面学习文档,涵盖基础语法、细节语法和进阶语法,结合 PHP 7.4 新特性与实战案例,帮助系统掌握 PHP 开发: 为什么特地做7.4的笔记而不做8的?因为公司用的7.4,哈哈 一、基…...
Nginx核心功能
目录 一:基于授权的访问控制 1:基于授权的访问控制简介 2:基于授权的访问控制步骤 (1)使用htpasswd 生成用户认证文件 (2)修改密码文件权限为400,将所有者改为nginx,…...
基于Spring Boot 电商书城平台系统设计与实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...
流量控制机制
基于信用(credit-based)的流量控制机制 在基于信用的流量控制中,每个下游路由器都维护了一个信用计数器,用于跟踪其可用的缓冲空间。当一个数据包(或者说flit)被成功接收后,下游路由器会向上游…...
ImageDataGenerator ()用法简介
ImageDataGenerator 是 Keras 中用于图像数据增强和预处理的工具。它允许你实时生成增强的图像数据,这在训练深度学习模型时特别有用,因为它可以帮助提高模型的泛化能力。 以下是 ImageDataGenerator 的一些常见用法和参数: 基本用法 导入模块 from keras.preprocessi…...
【Linux】服务自启动设置的方式
关于服务自启动设置的方式,本文将介绍两种方法。分别是systemd服务单元文件的配置和起容器的方式。 目录 1 systemd服务单元文件的配置 [Unit] 部分 [Service] 部分 [Install] 部分 2 docker 1 systemd...
Wi-SUN与LoRa和NB-IoT通信技术的对比
LoRa和NB-IoT也都是LPWAN(低功耗广域网)的一种,不同的是他们分处在不同的频段。分为授权频段和非授权频段。(NB-IoT)其采用现有的3G、4G网络,需要通过电信运营商申请才可以使用。使用非授权频段的技术主要为…...