当前位置: 首页 > news >正文

Vue.js 学习笔记

文章目录

    • 前言
    • 一、Vue.js 基础概念
      • 1.1 Vue.js 简介
      • 1.2 Vue.js 的特点
      • 1.3 Vue.js 基础示例
    • 二、Vue.js 常用指令
      • 2.1 双向数据绑定(`v-model`)
      • 2.2 条件渲染(`v-if` 和 `v-show`)
      • 2.3 列表渲染(`v-for`)
      • 2.4 事件处理(`v-on`)
      • 2.5 表单绑定(`v-model`)
    • 三、Vue.js 组件化开发
      • 3.1 组件的概念
      • 3.2 创建组件
        • 3.2.1 全局注册
        • 3.2.2 局部注册
      • 3.3 组件间通信
        • 3.3.1 父子组件通信
      • 3.4 组件的生命周期
    • 四、Vue.js 计算属性与侦听器
      • 4.1 计算属性
      • 4.2 侦听器
    • 五、Vue.js 路由与状态管理
      • 5.1 Vue Router
      • 5.2 Vuex
    • 六、总结

前言

在前端开发领域,Vue.js 以其轻量级、易上手和高性能的特点,赢得了众多开发者的青睐。作为一名前端小白,我也踏上了学习 Vue.js 的旅程。本文将分享我的学习笔记,涵盖 Vue.js 的基础概念、常用指令、组件化开发、计算属性与侦听器、路由和状态管理等知识点,并附上代码示例,希望能帮助到同样在学习 Vue.js 的你。

一、Vue.js 基础概念

1.1 Vue.js 简介

Vue.js 是一款用于构建用户界面的渐进式 JavaScript 框架。它采用直观的模板语法,降低了学习成本,并通过响应式数据绑定,实现了数据与视图的自动同步更新。Vue.js 的组件化开发模式,使代码结构更加清晰、可维护性强,非常适合构建大型应用。

1.2 Vue.js 的特点

  • 易学易用:Vue.js 的 API 设计简洁明了,即使是初学者也能快速上手。
  • 响应式数据绑定:通过双向绑定(v-model),数据与视图能够自动同步更新,减少了手动操作 DOM 的繁琐。
  • 组件化开发:将 UI 界面拆分成多个独立的组件,提高了代码的复用性和可维护性。
  • 生态丰富:Vue.js 拥有完善的生态系统,包括 Vue Router、Vuex 等官方维护的配套工具,方便构建单页应用(SPA)。

1.3 Vue.js 基础示例

下面是一个简单的 Vue.js 实例,展示了数据绑定和事件处理的基本用法:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Vue.js 基础示例</title><script src="https://cdn.jsdelivr.net/npm/vue@3"></script>
</head>
<body><div id="app"><h1>{{ message }}</h1><button @click="changeMessage">点击修改消息</button></div><script>const app = Vue.createApp({data() {return {message: 'Hello, Vue.js!'};},methods: {changeMessage() {this.message = '消息已修改!';}}});app.mount('#app');</script>
</body>
</html>

在上述代码中,我们通过 data 函数定义了组件的数据 message,并通过 methods 定义了点击按钮时触发的方法 changeMessage。在模板中,使用 {{ message }} 实现了数据的插值显示,使用 @click 指令绑定了点击事件。

二、Vue.js 常用指令

2.1 双向数据绑定(v-model

v-model 指令用于实现表单输入和应用状态之间的双向数据绑定。当输入框的值发生变化时,绑定的数据也会自动更新,反之亦然。

<div id="app"><input v-model="message" placeholder="编辑消息"><p>输入的消息是:{{ message }}</p>
</div><script>const app = Vue.createApp({data() {return {message: 'Hello, Vue!'};}});app.mount('#app');
</script>

2.2 条件渲染(v-ifv-show

v-if 指令用于条件渲染,只有在条件为 true 时,元素才会被渲染到 DOM 中。而 v-show 指令则是通过 CSS 的 display 属性来控制元素的显示和隐藏,元素始终存在于 DOM 中。

<div id="app"><button @click="toggle">切换显示</button><p v-if="isVisible">现在你看到我了</p><p v-show="isVisible">我也能切换显示</p>
</div><script>const app = Vue.createApp({data() {return {isVisible: true};},methods: {toggle() {this.isVisible = !this.isVisible;}}});app.mount('#app');
</script>

2.3 列表渲染(v-for

v-for 指令用于遍历数组或对象,并渲染列表。在使用 v-for 时,建议为每个列表项指定一个唯一的 key 属性,以提高渲染性能。

<div id="app"><ul><li v-for="(item, index) in items" :key="index">{{ item }}</li></ul>
</div><script>const app = Vue.createApp({data() {return {items: ['苹果', '香蕉', '橙子', '葡萄']};}});app.mount('#app');
</script>

2.4 事件处理(v-on

v-on 指令用于监听 DOM 事件,并在事件触发时执行相应的 JavaScript 代码。在 Vue.js 中,事件处理函数可以定义在组件的 methods 中。

<div id="app"><button v-on:click="sayHello">点击我</button><p>你点击了 {{ count }} 次</p>
</div><script>const app = Vue.createApp({data() {return {count: 0};},methods: {sayHello() {this.count++;alert('你好,Vue.js!');}}});app.mount('#app');
</script>

2.5 表单绑定(v-model

v-model 指令用于实现表单输入和应用状态之间的双向绑定。当输入框的值发生变化时,绑定的数据也会自动更新,反之亦然。

<div id="app"><input v-model="message" placeholder="输入消息"><p>你输入的消息是:{{ message }}</p>
</div><script>const app = Vue.createApp({data() {return {message: ''};}});app.mount('#app');
</script>

三、Vue.js 组件化开发

3.1 组件的概念

组件是 Vue.js 最强大的功能之一,它允许我们将 UI 拆分成独立、可复用的部分。通过组件化开发,我们可以将复杂的界面分解为多个简单的组件,提高代码的可维护性和复用性。

3.2 创建组件

3.2.1 全局注册

全局注册的组件可以在整个 Vue 应用中使用。我们可以通过 app.component 方法进行全局注册。

<div id="app"><my-component></my-component>
</div><script>const MyComponent = {template: '<p>这是一个全局注册的组件</p>'};const app = Vue.createApp({});app.component('my-component', MyComponent);app.mount('#app');
</script>
3.2.2 局部注册

局部注册的组件只能在当前组件中使用。我们可以通过 components 选项来局部注册组件。

<div id="app"><child-component></child-component>
</div><script>const ChildComponent = {template: '<p>这是一个局部注册的组件</p>'};const app = Vue.createApp({components: {'child-component': ChildComponent}});app.mount('#app');
</script>

3.3 组件间通信

3.3.1 父子组件通信

父子组件之间的通信可以通过 propsemit 实现。父组件可以通过 props 向子组件传递数据,子组件可以通过 emit 向父组件发送事件。

父组件:

<div id="app"><child-component :message="parentMessage" @update-message="updateMessage"></child-component>
</div><script>const ChildComponent = {props: ['message'],template: `<div><p>子组件收到的消息:{{ message }}</p><input v-model="childMessage" @input="sendMessage"></div>`,data() {return {childMessage: ''};},methods: {sendMessage() {this.$emit('update-message', this.childMessage);}}};const app = Vue.createApp({data() {return {parentMessage: '你好,子组件!'};},components: {'child-component': ChildComponent},methods: {updateMessage(newMessage) {this.parentMessage = newMessage;}}});app.mount('#app');
</script>

3.4 组件的生命周期

组件的生命周期是指组件从创建到销毁的整个过程。Vue.js 提供了一系列的生命周期钩子函数,我们可以在这些钩子函数中执行特定的逻辑。

<div id="app"><button @click="toggleComponent">切换组件</button><div v-if="showComponent"><my-component></my-component></div>
</div><script>const MyComponent = {template: '<p>这是一个生命周期示例组件</p>',data() {return {count: 0};},beforeCreate() {console.log('组件创建前');},created() {console.log('组件创建后');},beforeMount() {console.log('组件挂载前');},mounted() {console.log('组件挂载后');},beforeUpdate() {console.log('组件更新前');},updated() {console.log('组件更新后');},beforeUnmount() {console.log('组件卸载前');},unmounted() {console.log('组件卸载后');}};const app = Vue.createApp({data() {return {showComponent: true};},methods: {toggleComponent() {this.showComponent = !this.showComponent;}}});app.mount('#app');
</script>

四、Vue.js 计算属性与侦听器

4.1 计算属性

计算属性是基于其依赖项进行计算的属性。计算属性会根据依赖项的变化自动更新,非常适合用于需要根据数据进行复杂计算的场景。

<div id="app"><p>原消息:{{ message }}</p><p>计算后的消息:{{ computedMessage }}</p><button @click="changeMessage">修改消息</button>
</div><script>const app = Vue.createApp({data() {return {message: 'Hello, Vue.js!'};},computed: {computedMessage() {return this.message.toUpperCase();}},methods: {changeMessage() {this.message = '消息已修改!';}}});app.mount('#app');
</script>

4.2 侦听器

侦听器用于监听数据的变化,并在数据变化时执行特定的逻辑。侦听器可以通过 watch 选项来定义。

<div id="app"><p>输入的消息:{{ message }}</p><input v-model="message" placeholder="输入消息">
</div><script>const app = Vue.createApp({data() {return {message: ''};},watch: {message(newVal, oldVal) {console.log(`消息从 ${oldVal} 变为 ${newVal}`);}}});app.mount('#app');
</script>

五、Vue.js 路由与状态管理

5.1 Vue Router

Vue Router 是 Vue.js 的官方路由库,用于构建单页应用(SPA)。通过 Vue Router,我们可以实现页面的动态跳转和路由管理。

安装 Vue Router:

npm install vue-router

基本用法:

<div id="app"><router-link to="/home">首页</router-link><router-link to="/about">关于</router-link><router-view></router-view>
</div><script>import { createApp } from 'vue';import { createRouter, createWebHistory } from 'vue-router';const Home = { template: '<p>这是首页</p>' };const About = { template: '<p>这是关于页</p>' };const routes = [{ path: '/home', component: Home },{ path: '/about', component: About }];const router = createRouter({history: createWebHistory(),routes});const app = createApp({});app.use(router);app.mount('#app');
</script>

5.2 Vuex

Vuex 是 Vue.js 的官方状态管理库,用于集中管理应用的状态。通过 Vuex,我们可以实现组件之间的状态共享和状态管理。

安装 Vuex:

npm install vuex

基本用法:

<div id="app"><div>{{ count }}</div><button @click="increment">增加</button><button @click="decrement">减少</button>
</div><script>import { createApp } from 'vue';import { createStore } from 'vuex';const store = createStore({state: {count: 0},mutations: {increment(state) {state.count++;},decrement(state) {state.count--;}}});const app = createApp({});app.use(store);app.mount('#app');
</script>

六、总结

通过以上的学习,我们掌握了 Vue.js 的基础概念、常用指令、组件化开发、计算属性与侦听器、路由和状态管理等知识点。Vue.js 以其简洁的语法和强大的功能,为我们提供了高效的前端开发体验。希望这些学习笔记能帮助你更好地理解和使用 Vue.js,开启你的前端开发之旅!在这里插入图片描述

相关文章:

Vue.js 学习笔记

文章目录 前言一、Vue.js 基础概念1.1 Vue.js 简介1.2 Vue.js 的特点1.3 Vue.js 基础示例 二、Vue.js 常用指令2.1 双向数据绑定&#xff08;v-model&#xff09;2.2 条件渲染&#xff08;v-if 和 v-show&#xff09;2.3 列表渲染&#xff08;v-for&#xff09;2.4 事件处理&am…...

MySQL表连接详解

MySQL表连接详解 在 MySQL 中&#xff0c;表连接&#xff08;Join&#xff09;用于将多个表中的数据组合在一起&#xff0c;基于它们之间的关系进行查询。常见的表连接类型包括内连接、左连接、右连接和全外连接。以下是这些连接类型的详细说明&#xff1a; 1. 内连接&#x…...

【JAVA】ThreadPoolTaskExecutor 线程池学习、后端异步、高并发处理

ThreadPoolTaskExecutor 是 Spring 框架提供的一个线程池实现类&#xff0c;基于 Java 原生的 ThreadPoolExecutor 进行了封装和扩展&#xff0c;支持更灵活的配置&#xff0c;并与 Spring 的依赖注入、生命周期管理等功能无缝集成。它常用于异步任务处理、定时任务调度和高并发…...

PPT 小黑第38套

对应大猫40 幻灯片母板-最后一页-重命名为奇数页 奇偶页-点中标题-形状格式-形状填充-青色 最后一页页码左对齐 更换幻灯片背景&#xff1a;设计-设置背景格式-图片填充 【开始】-段落居中&#xff0c;对齐文本-中部对齐&#xff0c;排列-对齐-底端&#xff0c;-再水平居中…...

安卓开发相机功能

相机功能 安卓中的相机调用功能也经历了很多的方案升级&#xff0c;目前可选的官方方案是CameraX、Camera2、Camera&#xff08;废弃&#xff09;&#xff0c;还有一些第三方免费或者是付费的相机库。对于大多数开发者&#xff0c;建议使用 CameraX。 CameraX CameraX 是 An…...

宝塔找不到php扩展swoole,服务器编译安装

1. 在php7.4中安装swoole&#xff0c;但找不到这个扩展安装 2. 服务器下载源码解压安装 http://pecl.php.net/package/swoole 下载4.8.0版本 解压到/www/server/php/74/下 3. 发现报错问题&#xff1b; 更新一下依赖 yum update yum -y install gcc gcc-c autoconf libjpe…...

Spring Web MVC

前言 今天来复习 Spring Web MVC 框架。它提供了一套高效、便捷的方式来构建 Web 应用程序。今天&#xff0c;就让我们一同深入 Spring Web MVC&#xff0c;从基础概念到实际应用&#xff0c;好好补补. 一、Spring Web MVC 是什么&#xff1f; 官方定义解读 根据官方描述&…...

蓝桥杯备考:动态规划线性dp之下楼梯问题进阶版

老规矩&#xff0c;按照dp题的顺序 step1 定义状态表达 f[i]表示到第i个台阶的方案数 step2:推导状态方程 step3:初始化 初始化要保证 1.数组不越界 2.推导结果正确 如图这种情况就越界了&#xff0c;我们如果把1到k的值全初始化也不现实&#xff0c;会增加程序的时间复杂度…...

机器视觉开发教程——封装Halcon通用模板匹配工具【含免费教程源码】

目录 引言前期准备Step1 设计可序列化的输入输出集合【不支持多线程】Step2 设计程序框架1、抽象层【IProcess】2、父类【HAlgorithm】3、子类【HFindModelTool】 Step3 设计UI结果展示 引言 通过仿照VisionPro软件二次开发Halcon的模板匹配工具&#xff0c;便于在客户端软件中…...

UDP透传程序

UDP透传程序 本脚本用于在 设备 A 和 设备 B 之间建立 UDP 数据转发桥梁&#xff0c;适用于 A 和 B 设备无法直接通信的情况。 流程&#xff1a; A --> 电脑 (中继) --> B B --> 电脑 (中继) --> A 需要修改参数&#xff1a; B_IP “192.168.1.123” # 设备 B 的…...

【USRP】NVIDIA Sionna:用于 6G 物理层研究的开源库

目录 Sionna&#xff1a;用于 6G 物理层研究的开源库主要特点实现6G研究的民主化支持 5G、6G 等模块化、可扩展、可伸缩快速启动您的研究 好处原生人工智能支持综合研究平台开放生态系统 安装笔记使用 pip 安装基于Docker的安装从源代码安装“你好世界&#xff01;”探索锡奥纳…...

Spring WebFlux 中 WebSocket 使用 DataBuffer 的注意事项

以下是修改后的完整文档&#xff0c;包含在多个多线程环境中使用 retain() 和 release() 方法的示例&#xff0c;且确保在 finally 块中调用 release()&#xff1a; 在 Spring WebFlux 中&#xff0c;WebSocketMessage 主要用于表示 WebSocket 的消息载体&#xff0c;其中 getP…...

SQL经典常用查询语句

1. 基础查询语句 1.1 查询表中所有数据 在SQL中&#xff0c;查询表中所有数据是最基本的操作之一。通过使用SELECT * FROM table_name;语句&#xff0c;可以获取指定表中的所有记录和列。例如&#xff0c;假设有一个名为employees的表&#xff0c;包含员工的基本信息&#xf…...

0005__PyTorch 教程

PyTorch 教程 | 菜鸟教程 离线包&#xff1a;torch-1.13.1cpu-cp39-cp39-win_amd64.whl https://download.pytorch.org/whl/torch_stable.html...

高并发场景下的数据库优化

在高并发系统中&#xff0c;数据库通常是性能瓶颈。面对高并发请求&#xff0c;我们需要采用合适的优化策略&#xff0c;以保证数据库的稳定性和高效性。本文将介绍数据库高并发问题的成因&#xff0c;并结合 Mybatis-Plus&#xff0c;探讨 乐观锁、悲观锁、高并发优化及数据库…...

Linux:同步

目录 一、同步概念 条件变量 二、生产者消费者模型 三、环形队列 一、同步概念 互斥用来解决 访问临界资源 的非原子性&#xff0c;通俗来说&#xff0c;由于互斥锁的实现&#xff0c;保证了在用户角度看&#xff0c;同一个时间内访问临界资源的代码只有一个线程在执行。 而…...

GB28181开发--ZLMediaKit‌+WVP+Jessibuca‌

一、核心组件功能 1‌、ZLMediaKit‌ 定位‌:基于 C++11 的高性能流媒体服务框架,支持 RTSP/RTMP/HLS/HTTP-FLV 等协议互转,具备低延迟(最低 100ms)、高并发(单机 10W 级连接)特性,适用于商用级流媒体服务器部署‌。 ‌特性‌:跨平台(Linux/Windows/ARM 等)、支持 …...

23种设计模式之《备忘录模式(Memento)》在c#中的应用及理解

程序设计中的主要设计模式通常分为三大类&#xff0c;共23种&#xff1a; 1. 创建型模式&#xff08;Creational Patterns&#xff09; 单例模式&#xff08;Singleton&#xff09;&#xff1a;确保一个类只有一个实例&#xff0c;并提供全局访问点。 工厂方法模式&#xff0…...

Oracle删除重复数据保留其中一条

Oracle删除重复数据保留其中一条 在Oracle数据库中&#xff0c;要删除重复数据并保留其中一条记录&#xff0c;可以使用多种方法。这里介绍两种常见的方法&#xff1a;使用ROWID或使用ROW_NUMBER()窗口函数。 方法1&#xff1a;使用ROWID ROWID是Oracle中用来唯一标识表中每…...

deepseek助力运维和监控自动化

将DeepSeek与Agent、工作流及Agent编排技术结合&#xff0c;可实现IT运维与监控的智能化闭环管理。以下是具体应用框架和场景示例&#xff1a; 一、智能Agent体系设计 多模态感知Agent 日志解析Agent&#xff1a;基于DeepSeek的NLP能力&#xff0c;实时解析系统日志中的语义&a…...

16.1STM32_ADC

STM32_ADC 数字信号分为高/低电平两种状态 模拟信号就是任意的电压值 STM32芯片内就是一整套的数字逻辑电路&#xff0c;来实现我们的程序执行&#xff0c;以及各种各样的外设功能&#xff0c; ADC&#xff08;模拟-数字转换技术&#xff09;的功能就是将模拟信号转化为数字…...

神经网络 - 激活函数(Swish函数、GELU函数)

一、Swish 函数 Swish 函数是一种较新的激活函数&#xff0c;由 Ramachandran 等人在 2017 年提出&#xff0c;其数学表达式通常为 其中 σ(x) 是 Sigmoid 函数&#xff08;Logistic 函数&#xff09;。 如何理解 Swish 函数 自门控特性 Swish 函数可以看作是对输入 x 进行“…...

VS2015 c++和cmake配置编程

Visual Studio 2015&#xff1a;确保安装了C开发工具&#xff0c;并安装“使用C的桌面开发”工作负载。CMake&#xff1a;可以从 CMake官网 下载并安装&#xff0c;并将其添加到系统环境变量中。vs加载项目启动Visual Studio。选择“继续但无代码”。点击“文件”。选择 “打开…...

如何为 Web 前端开发面试做好准备

大家好&#xff01;我是 [数擎AI]&#xff0c;一位热爱探索新技术的前端开发者&#xff0c;在这里分享前端和Web3D、AI技术的干货与实战经验。如果你对技术有热情&#xff0c;欢迎关注我的文章&#xff0c;我们一起成长、进步&#xff01; 开发领域&#xff1a;前端开发 | AI 应…...

深入探索像ChatGPT这样的大语言模型

参考 【必看珍藏】2月6日&#xff0c;安德烈卡帕西最新AI普及课&#xff1a;深入探索像ChatGPT这样的大语言模型&#xff5c;Andrej Karpathy fineweb知乎翻译介绍 fineweb-v1原始连接 fineweb中文翻译版本 Chinese Fineweb Edu数据集 查看网络的内部结果&#xff0c;可以参…...

代码贴——堆(二叉树)数据结构

头文件Heap.h #pragma once #include<bits/stdc.h> typedef int HPDataType;typedef struct Heap {HPDataType* a;int size;int capacity; }HP;void HPInit(HP* php); void HPDestory(HP* php); //出入后保持数据是堆 void HPPush(HP* php,HPDataType x); HPDataType HP…...

office或者word排版中,复制/黏贴进来文字不会自动换行,如何处理?

李升伟 整理 一、思考与分析 在Office或Word中复制粘贴文字时&#xff0c;文字不会自动换行&#xff0c;需要处理这个问题。首先&#xff0c;我得回想一下常见的原因和解决方法。可能的情况有很多&#xff0c;比如文本带有硬回车、段落格式设置问题&#xff0c;或者文本框的自…...

最新!!!DeepSeek开源周发布内容汇总

本周&#xff0c;人工智能领域的新锐力量DeepSeek宣布将于本周举办“开源周”&#xff08;Open Source Week&#xff09;&#xff0c;连续五天每日开源一个核心代码库&#xff0c;以透明的方式与全球开发者分享其在通用人工智能&#xff08;AGI&#xff09;探索中的最新成果。以…...

【MySQL】(2) 库的操作

SQL 关键字&#xff0c;大小写不敏感。 一、查询数据库 show databases; 注意加分号&#xff0c;才算一句结束。 二、创建数据库 {} 表示必选项&#xff0c;[] 表示可选项&#xff0c;| 表示任选其一。 示例&#xff1a;建议加上 if not exists 选项。 三、字符集编码和排序…...

记一次渗透测试实战:SQL注入漏洞的挖掘与利用

0x01 漏洞发现 在对某网站进行安全测试时&#xff0c;发现以下URL存在异常&#xff1a; https://******.com/search.php?keyword1&zt1954&dw1885&zz& 当参数keyword和zt被赋值为-1时页面返回特殊内容&#xff0c;初步判断存在SQL注入漏洞。 0x02 注入验证…...

Gin框架从入门到实战:核心用法与最佳实践

为什么选择Gin框架&#xff1f; Gin 是一个基于 Go 语言的高性能 Web 框架&#xff0c;具备以下优势&#xff1a; 轻量高效&#xff1a;底层依赖 net/http&#xff0c;性能接近原生。简洁优雅&#xff1a;API 设计友好&#xff0c;支持路由分组、中间件链、参数绑定等特性。生…...

PyTorch 的 nn.NLLLoss:负对数似然损失全解析

PyTorch 的 nn.NLLLoss&#xff1a;负对数似然损失全解析 在 PyTorch 的损失函数家族中&#xff0c;nn.NLLLoss&#xff08;Negative Log Likelihood Loss&#xff0c;负对数似然损失&#xff09;是一个不太起眼但非常重要的成员。它经常跟 LogSoftmax 搭配出现&#xff0c;尤…...

ROS2软件调用架构和机制解析:Publisher创建

术语 DDS (Data Distribution Service): 用于实时系统的数据分发服务标准&#xff0c;是ROS 2底层通信的基础RMW (ROS Middleware): ROS中间件接口&#xff0c;提供与具体DDS实现无关的抽象APIQoS (Quality of Service): 服务质量策略&#xff0c;控制通信的可靠性、历史记录、…...

vue2 以及vue3中 v-if和v-for是否可以同时使用

vue2以及vue3官方文档中都明确的指出 避免 v-if 和 v-for 用在一起 vue2 官方文档 解释 在 Vue 2 中&#xff0c;v-for 的优先级高于 v-if&#xff0c;也就是说&#xff0c;Vue 2 在渲染时&#xff0c;会先处理 v-for 生成列表项&#xff0c;再对子项判断 v-if 是否渲染。 …...

Hbase伪分布安装教程,详细版

注意Hbase版本与Hadoop版本的兼容&#xff0c;还有与JDK版本的兼容 本次用到的Hbase为2.4.6版本&#xff0c;Hadoop为3.1.3版本&#xff0c;JDK为JDK8 打开下面的网址查看兼容问题 Apache HBase Reference Guidehttps://hbase.apache.org/book.html#configuration 点击基础先…...

SSL: CERTIFICATE_VERIFY_FAILED Error in Python 是什么问题?

在最新版本的Stable Diffusion webui 版本上使用最新下载的模型时&#xff0c;出现了类似的错误。 SSL: CERTIFICATE_VERIFY_FAILED 错误在Python中通常表示你的程序试图通过HTTPS连接到某个服务器&#xff0c;但Python无法验证该服务器提供的SSL证书。这可能是因为以下几种原…...

15Metasploit框架介绍

metasploit目录结构 MSF ——the metasploit framework 的简称。MSF高度模块化&#xff0c;即框架结构由多个module组成&#xff0c;是全球最受欢迎的工具 是一筐开源安全漏洞利用和测试工具&#xff0c;集成了各种平台上常见的溢出漏洞和流行sheellcode&#xff0c;并且保持…...

【Qt】ffmpeg解码—照片提取、视频播放▲

目录 一、图像的成像原理&#xff1a; RGB成像原理&#xff1a; YUV成像原理&#xff1a; 二、多线程 三、ffmpeg解码&#xff08;照片提取&#xff09; 1.准备工作 &#xff08;1&#xff09;在工程文件夹里面新建三个文件夹 &#xff08;2&#xff09;在main函数中加…...

Springboot整合WebSocket+Redis以及微信小程序如何调用

一、 Springboot整合WebSocket 1. 引入socket依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>引入依赖后需要刷新maven,Websocket的版本默认跟随S…...

HOW - 在Windows浏览器中模拟MacOS的滚动条

目录 一、原生 CSS 代码实现模拟 macOS 滚动条额外优化应用到某个特定容器 二、Antd table中的滚动条场景三、使用第三方工具/扩展 如果你想让 Windows 里的滚动条 模拟 macOS 的效果&#xff08;细窄、圆角、隐藏默认轨道&#xff09;。 可以使用以下几种方案&#xff1a; 一…...

openEuler环境下GlusterFS分布式存储集群部署指南

1.环境准备&#xff1a; os&#xff1a;openEuler 22.03 主机名 IP地址 主机用途 Rocky8192.168.121.160客户端 open-Euler1192.168.121.150节点1&#xff0c;提供两块6G硬盘open-Euler4192.168.121.153节点2&#xff0c;提供两块6G硬盘open-Euler5192.168.121.154 …...

C++学习(七)(标准库+STL(iotstream公司,日期/时间,器皿,算法,迭代器,多线程))

C 标准模板库 &#xff08;STL&#xff09; C 标准模板库 &#xff08;STL&#xff09; 是头文件的集合&#xff0c;提供了多种数据结构、算法和函数&#xff0c;以简化您的 C 编码体验。STL 的主要目的是通过提供一套现成的有用工具来节省时间并提高效率。STL 最常用的功能可…...

c高级第五天

1> 在终端提示输入一个成绩&#xff0c;通过shell判断该成绩的等级 [90,100] : A [80, 90) : B [70, 80) : C [60, 70) : D [0, 60) : 不及格 #!/bin/bash# 提示用户输入成绩 read -p "请输入成绩&#xff08;0-100&#xff09;&#xff1a;" score# 判断成…...

Windows上使用go-ios实现iOS17自动化

前言 在Windows上运行iOS的自动化&#xff0c;tidevice对于iOS17以上并不支持&#xff0c;原因是iOS 17 引入新通信协议 ‌RemoteXPCQUIC‌&#xff0c;改变了 XCUITest 的启动方式。 一、go-ios的安装 1、安装命令&#xff1a;npm i go-ios 2、安装完成后输入命令which io…...

迷你世界脚本小地图接口:Mapmark

小地图接口&#xff1a;Mapmark 彼得兔 更新时间: 2023-10-25 10:33:48 具体函数名及描述如下: 序号 函数名 函数描述 1 newShape(...) 新增一个形状(线&#xff0c;矩形&#xff0c;圆形) 2 deleteShape(...) 删除一个形状 3 setShapeColor(...) 设置…...

TMS320F28P550SJ9学习笔记1:CCS导入工程以及测试连接单片机仿真器

学习记录如何用 CCS导入工程以及测试连接单片机仿真器 以下为我的CCS 以及驱动库C2000ware 的版本 CCS版本&#xff1a; Code Composer Studio 12.8.1 C2000ware &#xff1a;C2000Ware_5_04_00_00 目录 CCS导入工程&#xff1a; 创建工程&#xff1a; 添加工程&#xff1a; C…...

为什么要提倡尽早返回(Early Return)

为什么要提倡尽早返回&#xff08;Early Return&#xff09; 在编程中&#xff0c;“尽早返回”&#xff08;Early Return&#xff09;是一种常被提倡的编程方式&#xff0c;特别是在需要提升代码可读性、减少嵌套层级、以及快速处理异常情况时。本文将讨论尽早返回的优点、应…...

Gartner发布安全运营指标构建指南

如何为安全运营指标构建坚实的基础 安全运营经理需要报告威胁检测、调查和响应计划的有效性&#xff0c;但难以驾驭大量潜在的 SOC 指标。本研究提供了设计针对 SOC 的指标系统的示例和实践。 主要发现 需要清晰、一致的衡量标准来向董事会成员或服务提供商等更广泛的团队传达…...

vue3:初学 vue-router 路由配置

承上一篇&#xff1a;nodejs&#xff1a;express js-mdict 作为后端&#xff0c;vue 3 vite 作为前端&#xff0c;在线查询英汉词典 安装 cnpm install vue-router -S 现在讲一讲 vue3&#xff1a;vue-router 路由配置 cd \js\mydict-web\src mkdir router cd router 我还…...

数据结构入门篇——什么是数据结构。

一、引入 工具是一种什么东西呢&#xff1f;是一种转化媒介&#xff0c;我们需要熟食&#xff0c;我们要通过用火来将生肉烤熟。在这个过程中。我们要输入一个东西——生肉&#xff0c;通过工具——火的加工&#xff0c;从而得到我们的目的产物——熟肉。 将上面的例子和红字部…...