马洪旭 做的网站大学/网站排名优化公司哪家好
1.如果自己电脑vue版本是vue2版本,下面将详细介绍如何在vue2版本基础上继续安装
vue3版本且不会影响vue2版本的使用
1-1 在c盘或者别的盘建一个文件夹vue3
1-2 在这个文件夹里使用WIN+R 打开终端 输入命令 npm install @vue/cli 安装完即可
1-3 然后进入此文件夹中的node_modules中的.bin文件夹中,修改里面文件如下:
vue修改为vue3, vue.cmd修改为vue3.cmd
1-4 然后把vue3.cmd拖拽到命令窗口中加上-v即可看到版本号 如下图所示
1-5 接下来就是配置环境变量
1-5-1 打开电脑系统属性-高级-环境变量
1-5-2 点击系统变量下方的新建 配置新的变量
变量名:vue3_cli 变量值:"C:\vue3\node_modules\.bin"(根据自己位置就行)
1-5-3 点击变量中的path 点击编辑 完了把新增 把%vue_cli3%
1-5-5 如果是建vue3项目的话 具体命令是 vue3 create demo_project,然后根据具体内容去选择
2.element-plus新增组件库
2-1 Text 基本用法 具体代码如下(可以直接新建完项目以后粘贴验证):
<template><div class="div_container"><h3>Text 基本用法</h3><el-text class="mr-5">Default</el-text><el-text class="mr-5" type="primary">Primary</el-text><el-text class="mr-5" type="success">Success</el-text><el-text class="mr-5" type="info">Info</el-text><el-text class="mr-5" type="warning">Warning</el-text><el-text class="mr-5" type="danger">Danger</el-text><h3>Text 尺寸</h3><el-text class="mr-5" size="large">Large</el-text><el-text class="mr-5">Default</el-text><el-text class="mr-5" size="small">Small</el-text><h3 style="margin-bottom: 10px">Text 省略</h3><div style="margin-bottom: 10px">通过 truncated 属性,在文本超过视图或最大宽度设置时展示省略符。 通过line-clamp 属性控制多行的样式</div><div><el-text class="w-150px mb-2" truncated>Self element set width 100px</el-text><el-row class="w-150px mb-2"><el-text truncated>Squeezed by parent element</el-text></el-row><el-text line-clamp="2">The -webkit-line-clamp CSS property<br />allows limiting of the contents of<br />a block to the specified number of lines.</el-text></div><h3>Text 覆盖</h3><el-space direction="vertical"><el-text>span</el-text><el-text tag="p">This is a paragraph.</el-text><el-text tag="b">Bold</el-text><el-text tag="i">Italic</el-text><el-text>This is<el-text tag="sub" size="small">subscript</el-text></el-text><el-text>This is<el-text tag="sup" size="small">superscript</el-text></el-text><el-text tag="ins">Inserted</el-text><el-text tag="del">Deleted</el-text><el-text tag="mark">Marked</el-text></el-space></div>
</template><script setup>
import "@element-plus/icons-vue";
</script>
<style scoped>
.div_container {
}
.mr-5 {margin-right: 5px;
}
.w-150px {width: 150px;
}
.mb-2 {margin-bottom: 2px;
}
</style>
2-2 TreeSelect 树形选择
<template><h3>TreeSelect 树形选择 选择任意级别</h3><div style="color: lightseagreen">(注意:当属性 check-strictly=true时,任何节点都可以被选择,否则只有子节点可被选择。)</div><div class="node_css mt_15"><el-tree-selectv-model="value":data="data":check-strictly="checkStrictly":render-after-expand="false"style="width: 240px"/><div class="mt_15">show checkbox(only click checkbox to select):<el-tree-selectv-model="value2":data="data":check-strictly="checkStrictly":render-after-expand="false"show-checkboxstyle="width: 240px"/></div><div class="mt_15">show checkbox with `check-on-click-node`:<el-tree-selectv-model="value3":data="data":check-strictly="checkStrictly":render-after-expand="false"show-checkboxcheck-on-click-nodestyle="width: 240px"/></div></div><div style="display: flex; flex-direction: row"><div style="flex: 5"><el-watermark:width="130":height="30"image="https://element-plus.org/images/element-plus-logo.svg"><div style="height: 500px" /></el-watermark></div><div style="flex: 5"><el-watermark:font="font":content="['Element+', 'Element Plus']":width="130":height="40"><div style="height: 500px" /></el-watermark></div></div>
</template><script setup>
import { ref, reactive, toRaw, onMounted } from "vue";
const value = ref();
const value2 = ref();
const value3 = ref();
const checkStrictly = ref(false);
const demolist = reactive({list: [{title: "一般",// icon: h(Home),name: "home",value: "0",},{title: "还好",// icon: h(Category),name: "category",value: "0",},{title: "很好",// icon: h(Find),name: "find",value: "0",},{title: "最爱",// icon: h(Cart),name: "cart",value: "0",},{title: "改进",// icon: h(My),name: "my",value: "0",},],
});
const data = [{value: "1",label: "Level one 1",children: [{value: "1-1",label: "Level two 1-1",children: [{value: "1-1-1",label: "Level three 1-1-1",},],},],},{value: "2",label: "Level one 2",children: [{value: "2-1",label: "Level two 2-1",children: [{value: "2-1-1",label: "Level three 2-1-1",},],},{value: "2-2",label: "Level two 2-2",children: [{value: "2-2-1",label: "Level three 2-2-1",},],},],},{value: "3",label: "Level one 3",children: [{value: "3-1",label: "Level two 3-1",children: [{value: "3-1-1",label: "Level three 3-1-1",},],},{value: "3-2",label: "Level two 3-2",children: [{value: "3-2-1",label: "Level three 3-2-1",},],},],},
];
onMounted(() => {console.log(demolist, "demolist");console.log(toRaw(demolist));// console.log(JSON.parse(JSON.stringify(demolist)));
});
</script>
<style scoped>
.mt_15 {margin-top: 15px;
}
.node_css {display: flex;flex-direction: column;
}
</style>
3.vue3新增属性-setup使用俩种方式
3-1 第一种方式 标签以外写 setup 函数,需要显式导入 defineComponent,但上下文指向组件实例,可以使用传统的生命周期钩子和直接访问组件的属性和方法。
3-2 第二种方式 语法更简洁,但上下文不指向组件实例。
<script setup>import {onMounted, ref} from 'vue';const value=ref();const showFlag=ref(false);const handleClick=()=>{};onMounted(()=>{ console.log(showFlag)})
</script>
4.vue3已废除$set向对象中添加响应式的属性 以下是常用的集中方法
4-1 使用ES6属性 Reflect
<script setup>import { ref, reactive, toRaw, onMounted } from "vue";const demolist = reactive({list: [{title: "一般",// icon: h(Home),name: "home",value: "0",},{title: "还好",// icon: h(Category),name: "category",value: "0",},{title: "很好",// icon: h(Find),name: "find",value: "0",},{title: "最爱",// icon: h(Cart),name: "cart",value: "0",},{title: "改进",// icon: h(My),name: "my",value: "0",},],}); const inpChange = () => {for (var e = 0; e < toRaw(demolist.list).length; e++) {Reflect.set(toRaw(demolist.list)[e], "index", e + 1);}console.log(toRaw(demolist), "demolist");}
</script>
4-2 使用vue3响应式
<script setup>import { ref, reactive, toRaw, onMounted } from "vue";const demolist = reactive({list: [{title: "一般",// icon: h(Home),name: "home",value: "0",},{title: "还好",// icon: h(Category),name: "category",value: "0",},{title: "很好",// icon: h(Find),name: "find",value: "0",},{title: "最爱",// icon: h(Cart),name: "cart",value: "0",},{title: "改进",// icon: h(My),name: "my",value: "0",},],}); const inpChange = () => {for (var e = 0; e < toRaw(demolist.list).length; e++) {toRaw(demolist.list)[e].index = e + 1;}console.log(toRaw(demolist), "demolist");}
</script>
效果图如下:
4-3 上述俩种是有一定规律添加 如果是特定的添加 用以下这种方法
<script setup>import { ref, reactive, toRaw, onMounted } from "vue";const demolist = reactive({list: [{title: "一般",// icon: h(Home),name: "home",value: "0",},{title: "还好",// icon: h(Category),name: "category",value: "0",},{title: "很好",// icon: h(Find),name: "find",value: "0",},{title: "最爱",// icon: h(Cart),name: "cart",value: "0",},{title: "改进",// icon: h(My),name: "my",value: "0",},],}); const inpChange = () => {for (var e = 0; e < toRaw(demolist.list).length; e++) {if (e % 2 == 0) {console.log(toRaw(demolist.list[e]),"toRaw(demolist.list[e] %2===0";toRaw(demolist.list)[e].index = e + 1;} else {console.log(toRaw(demolist.list[e]),"toRaw(demolist.list[e] %2!==0");toRaw(demolist.list)[e].index = e + 2;}}console.log(toRaw(demolist), "demolist");}
</script>
效果图如下:
4-4 vue3写法归总 持续更新中......
1.获取输入框 下拉框的值 使用.value去拿2.但是如果你这个属性是还包了一层 reactive 那么你就这样就代理了 打印出的值是包在了Proxy里想要获取值有俩种方式:第一种是vue自带的 toRaw(objectTarget) 第二种是序列化使用 JSON.parse(JSON.stringfy(objectTarget))
5.vue3七种传值方式
5-1 Props方式
父组件代码
<template><child-components :list="list"></child-components><div><input v-model="value" type="text" placeholder="请输入"/><button @click="handleAdd" type="button">添加</button></div>
</template>
<script setup>
import { ref } from 'vue'
import ChildComponents from './child.vue'
const list = ref(['JavaScript', 'HTML', 'CSS'])
const value= ref('')
// add 触发后的事件处理函数
const handleAdd = () => list.value.push(value.value)
</script>子组件代码(子组件只需要对父组件传递的值进行渲染即可)
<template><ul ><li v-for="i in props.list" :key="i">{{ i }}</li></ul>
</template>
<script setup>
import { defineProps } from 'vue'
const props = defineProps({list: {type: Array,default: () => [],},
})
</script>
效果图如下:
5-2 emit方式 (emit方式也是Vue中最常见的组件通信方式,该方式用于子传父) 效果图如上所述 就不展示了
父组件 在父组件中只需要监听子组件自定义的事件,然后执行对应的添加操作。
<template><h8>我是父组件</h8><ul><li v-for="i in list" :key="i">{{ i }}</li></ul><child-components @add="handleAdd"></child-components>
</template>
<script setup>
import { ref } from "vue";
import ChildComponents from "./MainPage.vue";
const list = ref(["JavaScript", "HTML", "CSS"]);
// add 触发后的事件处理函数
const handleAdd = (value) => {list.value.push(value);
};
</script>子组件 在子组件中点击【添加】按钮后,emit一个自定义事件,并将添加的值作为参数传递。
<template><h8>我是子组件</h8><div><input v-model="value" type="text" placeholder="请输入" /><button @click="handleSubmit" type="button">添加</button></div>
</template>
<script setup>
import { ref, defineEmits } from "vue";
const value = ref("");
const emits = defineEmits(["add"]);
const handleSubmit = () => {emits("add", value.value);value.value = "";
};
</script>
5-3 v-model 是vue3 比较出色的语法糖 将会着重讲
5-3-1 单独传值如下:
父组件
<template><h8>我是父组件</h8><ul><li v-for="i in list" :key="i">{{ i }}</li></ul><child-components v-model:list="list"></child-components>
</template>
<script setup>
import { ref } from "vue";
import ChildComponents from "./MainPage.vue";
const list = ref(["JavaScript", "HTML", "CSS"]);
</script>子组件
<template><h8>我是子组件</h8><div><input v-model="value" type="text" placeholder="请输入" /><button @click="handleAdd" type="button">添加</button></div>
</template>
<script setup>
import { ref, defineEmits, defineProps } from "vue";
const value = ref("");
const props = defineProps({list: {type: Array,default: () => [],},
});
const emits = defineEmits(["update:list"]);
// 添加操作
const handleAdd = () => {const arr = props.list;arr.push(value.value);emits("update:list", arr);value.value = "";
};
</script>
5-3-2 多个传值情况写法如下:
特别需要注意俩点:1.在父组件中 绑俩个v-model<child-components v-model:list="list" v-model:listCopy='listCopy'></child-components>2.在子组件中 const emits = defineEmits(["update:list","update:listCopy"]);
父组件
<template><h4>我是父组件</h4><ul><li v-for="i in list" :key="i">{{ i }}</li></ul><h4>我是父组件Copy</h4><ul><li v-for="i in listCopy" :key="i">{{ i }}</li></ul><child-components v-model:list="list" v-model:listCopy='listCopy'></child-components>
</template>
<script setup>
import { ref } from "vue";
import ChildComponents from "./MainPage.vue";
const list = ref(["JavaScript", "HTML", "CSS"]);
const list = ref(["JavaScriptCopy", "HTMLCopy", "CSSCopy"]);
</script>子组件
<template><h4>我是子组件</h4><div><input v-model="value" type="text" placeholder="请输入" /><button @click="handleAdd" type="button">添加</button></div><h4>我是子组件Copy</h4><div><input v-model="valueCopy" type="text" placeholder="请输入" /><button @click="handleAddCopy" type="button">添加</button></div>
</template>
<script setup>
import { ref, defineEmits, defineProps } from "vue";
const value = ref("");
const valueCopy = ref("");
const props = defineProps({list: {type: Array,default: () => [],},listCopy: {type: Array,default: () => [],},
});
const emits = defineEmits(["update:list","update:listCopy"]);
// 添加操作
const handleAdd = () => {const arr = props.list;arr.push(value.value);emits("update:list", arr);value.value = "";
};
const handleAddCopy = () => {const arr = props.listCopy;arr.push(valueCopy.value);emits("update:listCopy", arr);valueCopy.value = "";
};
</script>
5-4 refs
在使用选项式API时,我们可以通过this.$refs.name的方式获取指定元素或者组件,但是组合式API中就无法使用哪种方式获取。如果我们想要通过ref的方式获取组件或者元素,需要定义一个同名的Ref对象,在组件挂载后就可以访问了。
父组件
<template><ul><li v-for="i in childRefs?.list" :key="i">{{ i }}</li></ul><!-- 子组件 ref的值与<script>中的保持一致 --><child-components ref="childRefs"></child-components><!-- 父组件 -->
</template>
<script setup>
import { ref } from 'vue'
import ChildComponents from './MainPage.vue'
const childRefs = ref(null)
</script>子组件
<template><div><input v-model="value" placeholder="请输入"/><button @click="handleAdd" type="button">添加</button></div>
</template>
<script setup>
import { ref, defineExpose } from 'vue'
const list = ref(['JavaScript', 'HTML', 'CSS'])
const value= ref('1')
// add触发后的事件处理函数
const handleAdd = () => {list.value.push(value.value)value.value = ''
}
defineExpose({ list })
</script>
5-5 provide/inject
provide和inject是Vue中提供的一对API,该API可以实现父组件向子组件传递数据,无论层级有 多深,都可以通过这对API实现。示例代码如下所示:
父组件
<template><!-- 子组件 --><child-components></child-components><!-- 父组件 --><div><input v-model="value" placeholder="请输入"/><button @click="handleAdd" type="button">添加</button></div>
</template>
<script setup>
import { ref, provide } from 'vue'
import ChildComponents from './MainPage.vue'
const list = ref(['JavaScript', 'HTML', 'CSS'])
const value= ref('')
// 向子组件提供数据
provide('list', list.value)
// add 触发后的事件处理函数
const handleAdd = () => {list.value.push(value.value)value.value = ''
}
</script>子组件
<template><ul ><li v-for="i in list" :key="i">{{ i }}</li></ul>
</template>
<script setup>
import { inject } from 'vue'
// 接受父组件提供的数据
const list = inject('list')
</script>
5-6 事件总线 结合外部第三方库来完成 官方推荐了俩种 mitt和tiny-emitter
我这里以mitt为例来说
5-6-1 首先安装mitt
npm install mitt
5-6-2 找到vue项目中的utils文件夹,新建一个bus.js,代码:
import mitt from "mitt";
const mitter = mitt();
export default mitter;
5-6-3 使用 我现在使用mitt进行兄弟组件之间的通信实现
父组件
<template><child1></child1> <child2></child2>
</template>
<script setup>import Child1 from "./MainPage.vue";import Child2 from "./GoodsPage.vue";
</script>
子组件-child1
<template><div>child1<button @click="click">给child2 传值</button></div>
</template>
<script setup>
import emitter from "@/utils/bus";function click() {emitter.emit("child2Data", { name: "小米" });}
</script>
子组件-child2
<template><div>child2---{{ str }}</div>
</template>
<script setup>
import emitter from "@/utils/bus";
import { onBeforeUnmount, ref } from "vue";
let str = ref();
emitter.on("child2Data", (data) => {str.value = data.name;
});
onBeforeUnmount(() => {emitter.off("child2Data"); //关闭
});
</script>
效果图如下:
6.后续会陆续补充:
6-1 创建vue3项目的时候一些选择
6-2 element-plus新增组件在实际项目中使用
6-3 vue3新增属性及生命周期及写法+element-plus 在实际项目中使用
持续更新中......
相关文章:

Vue3+element-plus摘要
1.如果自己电脑vue版本是vue2版本,下面将详细介绍如何在vue2版本基础上继续安装 vue3版本且不会影响vue2版本的使用 1-1 在c盘或者别的盘建一个文件夹vue3 1-2 在这个文件夹里使用WINR 打开终端 输入命令 npm install vue/cli 安装完即可 1-3 然后进入此文件夹中的n…...
Android Studio 将项目打包成apk文件
第一步:选择Build -> Generate Signed APK 会出现: 我们选择 Create new… 然后选择你要存放密钥的地方 点击ok之后,则选择好了文件,并生成了jks文件了。 点击ok之后, 会出现: 选择release…...

贪心算法day2(最长递增子序列)
目录 1.最长递增子序列 方法一:动态规划 方法二:贪心二分查找 1.最长递增子序列 链接:. - 力扣(LeetCode) 方法一:动态规划 思路:我们定义dp[i]为最长递增子序列,那么dp[j]就是…...

arcgis pro 学习笔记
二维三维集合在一起,与arcgis不同 一、首次使用,几个基本设置 1.选项——常规里面设置自动保存时间 2.新建工程文件,会自动加载地图,可以在选项里面设置为无,以提高启动效率。 3.设置缓存位置,可勾选每次…...

OpenGL 进阶系列06 - OpenGL变换反馈(TransformFeedback)
一:概述 变换反馈(Transform Feedback)是 OpenGL 中的一项技术,允许你将顶点着色器的输出(例如变换后的顶点数据)直接传输到缓冲区,而不是将结果渲染到屏幕上。它在图形计算中非常有用,尤其在粒子系统、模拟、几何处理等场景中,可以用来获取顶点处理的中间结果,并将其…...

elementUI 点击弹出时间 date-picker
elementUI的日期组件,有完整的UI样式及弹窗,但是我的页面不要它的UI样式,点击的时候却要弹出类似的日期选择器,那怎么办呢? 以下是elementUI自带的UI风格,一定要一个输入框来触发。 这是我的项目中要用到的…...

【浙江大学大模型系列】启真医疗大模型(国内大模型)
启真大模型是一款专注于医疗领域的AI大模型,它坚持“数据知识双轮驱动”的技术路线,通过大模型技术和医学知识库的紧密结合,致力于推动大模型技术在医疗行业的落地和应用实践。 启真大模型的特点在于其强大的数据整合能力和医学知识库的支持。…...

NestJS 项目中如何使用 class-validator 进行数据验证
前言 在现代Web开发中,数据验证是必不可少的一环,它不仅能够确保数据的准确性,还能提高系统的安全性。在使用NestJS框架进行项目开发时,class-validator与class-transformer这两个库为我们提供了方便的数据验证解决方案。 本文将…...

【AI抠图整合包及教程】Meta SAM2:引领图像和视频分割技术的新纪元
在人工智能的浪潮中,Meta公司再次以Segment Anything Model 2(SAM 2)引领了图像和视频分割技术的新纪元。SAM 2的发布不仅为计算机视觉领域的研究和发展注入了新的活力,还预示着这一技术将在多个行业中找到广泛的应用场景。这一创…...

小菜家教平台(三):基于SpringBoot+Vue打造一站式学习管理系统
目录 前言 今日进度 详细过程 相关知识点 前言 昨天重构了数据库并实现了登录功能,今天继续进行开发,创作不易,请多多支持~ 今日进度 添加过滤器、实现登出功能、实现用户授权功能校验 详细过程 一、添加过滤器 自定义过滤器作用&…...

ArcGIS/QGIS按掩膜提取或栅格裁剪后栅格数据的值为什么变了?
问题描述: 现有一栅格数据,使用ArcGIS或者QGIS按照矢量边界进行按掩膜提取或者栅格裁剪以后,其值的范围发生了变化,如下: 可以看到,不论是按掩膜提取还是进行栅格裁剪后,其值的范围均与原来栅…...

Linux的基本指令(一)
1.ls指令 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及信息。 常用选项: -a列出目录下的所有文件,包括以 . 开头的隐含文件。 -l列出文件的详细信息 举例: rooti…...

python导入包失败 in <module> import pandas as pd
如果安装不成功就更新一下pip python.exe -m pip install --upgrade pip 再删掉原来的pandas pip uninstall pandas 再安装一次 pip install pandas...

不惧风雨,硬核防护!雷孜LaCie小金刚三防移动硬盘颠覆认知
不惧风雨,硬核防护!雷孜LaCie小金刚三防移动硬盘颠覆认知 哈喽小伙伴们好,我是Stark-C~ 说到移动硬盘大家潜意识的认为是一件很娇贵的数码产品,很怕湿,摔不得。所以我们在使用传统移动硬盘的时候不能摔,远…...

Yocto 项目下通过网络更新内核、设备树及模块
Yocto 项目下通过网络更新内核、设备树及模块 前言 在 Yocto 项目的开发过程中,特别是在进行 BSP(Board Support Package)开发时,经常需要调整特定软件包的版本,修改内核、设备树以及内核模块。然而,每次…...

Scheduled Sampling工作原理【小白记笔记】
Scheduled Sampling(计划采样)是一种在序列生成任务中用于逐步引导模型的训练策略。该方法最早由 Bengio 等人在 2015 年提出,主要用于解决序列到序列(sequence-to-sequence)模型中的曝光偏差(exposure bia…...

C++:C++的IO流
目录 一.C标准IO流 1.operator bool 二.C文件IO流 1.文件读取 ifstream (1)ifstream继承istream (2)ifstream 构造函数 (3)ifstream,get读取整个文件 (4)>&g…...

「QT」几何数据类 之 QLine 整型直线类
✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…...

day58 图论章节刷题Part09(dijkstra(堆优化版)、Bellman_ford 算法)
dijkstra(堆优化版) 朴素版的dijkstra解法的时间复杂度为 O(n^2),时间复杂度只和 n(节点数量)有关系。如果n很大的话,可以从边的角度来考虑。因为是稀疏图,从边的角度考虑的话,我们在堆优化算法中最好使用…...

【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】试卷(1)
前言 大家好吖,欢迎来到 YY 滴计算机网络 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 本博客主要内容,收纳了一部门基本的计算机网络题目,供yy应对期中考试复习。大家可以参考 本章是去答案版本。带答案的版本在下…...

智能出行助手:SpringBoot共享汽车管理平台
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理共享汽车管理系统的相关信息成为必然。开发…...

【月之暗面kimi-注册/登录安全分析报告】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …...

Flink实现实时数据处理
代码如下: #!/usr/bin/python # -*- coding: UTF-8 -*-from pyflink.datastream import StreamExecutionEnvironment from pyflink.table import StreamTableEnvironment, EnvironmentSettings, DataTypes# 初始化执行环境 s_env StreamExecutionEnvironment.get_…...

11.9.2024刷华为
文章目录 HJ31 单词倒排HJ32 密码提取语法知识记录 傻逼OD题目又不全又要收费,看毛线,莫名奇妙 HW这叼机构别搁这儿害人得不得? 我觉得我刷完原来的题目 过一遍华为机考的ED卷出处,就行了 HJ31 单词倒排 游戏本做过了好像 HJ3…...

Chromium 中chrome.system.storage扩展接口定义c++
一、chrome.system.storage 您可以使用 chrome.system.storage API 查询存储设备信息,并在连接和分离可移动存储设备时收到通知。 权限 system.storage 类型 EjectDeviceResultCode 枚举 "success" 移除命令成功执行 - 应用可以提示用户移除设备。…...

【Qt聊天室客户端】登录窗口
1. 验证码 具体实现 登录界面中创建验证码图片空间,并添加到布局管理器中 主要功能概述(创建一个verifycodewidget类专门实现验证码操作) 详细代码 // 头文件#ifndef VERIFYCODEWIDGET_H #define VERIFYCODEWIDGET_H#include <QWidget>…...

如何显示模型特征权重占比图【数据分析】
可视化模型的特征权重 1、流程 1、导入库: numpy:用于处理数组和矩阵。 matplotlib.pyplot:用于绘图。 sklearn.datasets:用于加载数据集。 sklearn.ensemble.RandomForestClassifier:用于训练随机森林模型。2、加载数据集: 使用load_iris函数加载Iris数据集。3、训练模…...

Ubuntu24安装MySQL
下载deb包: 先更新系统包: sudo apt update sudo apt update -y下载mysql: wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb 安装deb包: sudo dpkg -i mysql-apt-config_0.8.17-1_all.deb目前mysql还没有正式支持Ubun…...

微服务架构面试内容整理-Eureka
Spring Cloud Netflix 是一个为构建基于 Spring Cloud 的微服务应用提供的解决方案,利用 Netflix 的开源组件来实现常见的分布式系统功能。以下是 Spring Cloud Netflix 的一些主要组件和特点: 服务注册与发现:Eureka 是一个 RESTful 服务,用于注册和发现微服务。服务实例在…...

qt QErrorMessage详解
1、概述 QErrorMessage是Qt框架中用于显示错误消息的一个对话框类。它提供了一个简单的模态对话框,用于向用户显示错误或警告消息。QErrorMessage通常用于应用程序中,当需要向用户报告错误但不希望中断当前操作时。它提供了一个标准的错误消息界面&…...