2024 年最新前端工程师 Vue3 框架详细教程(更新中)

vue3 前端框架概述

vue 3 是 Vue.js 的最新版本,是一个用于构建用户界面的渐进式 JavaScript 框架。和 vue 2 相比,vue 3 引入了组合式 API,使开发者可以通过函数组织代码逻辑,适合处理复杂功能。vue 3 在性能上也有显著提升,特别是在大型应用中。

vue 3 利用了 Proxy 对象来实现响应式数据,替代了 vue 2 中的 Object.defineProperty,从而提高了性能和灵活性。vue 3 的 Tree-shaking 功能使得未使用的代码不会被打包,降低了打包体积。vue 3 还增强了 TypeScript 支持,提升了开发体验。新的渲染机制改善了应用的运行效率,并且 vue 3 支持自定义渲染器,能够轻松构建不同平台上的应用。

vue 官方网站:https://vuejs.org/

在这里插入图片描述
Tree-shaking 树摇

Tree-shaking 是一种用于移除 JavaScript 应用中未使用代码的优化技术。它通过静态分析模块的依赖关系,只将实际使用到的代码打包到最终的输出文件中,而未引用的部分则被 “摇掉” (移除),从而减少打包体积,提升应用性能。

vue 3 核心库经过优化,支持 Tree-shaking。这意味着如果你只使用 Vue 中的某些功能模块,未使用的部分不会被打包到最终文件中,从而减小应用的体积。这在构建大型应用时尤为重要。Tree-shaking 是在构建工具(如 Webpack、Vite、Rollup)中实现的,它们会分析代码并自动移除未使用的部分。

vite 前端构建工具

Vite 是一种新型前端构建工具,专为现代开发而设计,提供极速的开发服务器和快速的构建。和传统的打包工具不同,Vite 利用浏览器原生 ES 模块进行按需加载,大幅缩短了开发环境中的启动时间。它通过 ESBuild 进行预打包,速度非常快。Vite 同时支持 Vue、React、Svelte 等现代框架,具有优秀的插件生态。其生产环境下的构建过程也采用 Rollup,确保高效打包和代码拆分,适用于从小型项目到大型应用的开发。

vite 官方网站:https://vitejs.dev/

在这里插入图片描述
安装 vite 前端构建工具

npm install vite --save-dev

Vite 和 Webpack 区别

特性ViteWebpack
启动速度利用浏览器原生 ES 模块,启动极快,无需完整打包启动时需要完整打包,尤其在大型项目中启动较慢
打包方式开发环境不打包,生产环境使用 Rollup 进行优化打包无论开发还是生产模式,都通过 loaders 和 plugins 完整打包
热模块替换 (HMR)基于原生 ES 模块,HMR 速度非常快支持 HMR,但更新速度比 Vite 慢,需处理模块依赖链
依赖处理使用 ESBuild 预构建依赖,处理速度极快传统的 JavaScript 打包方式,处理依赖相对较慢
配置配置简洁,开箱即用,适合现代框架(Vue、React 等)功能强大,支持广泛,配置复杂,适合复杂的项目
生态系统新兴但发展迅速,特别适合 Vue 3、React 等现代框架生态系统成熟,适用于复杂的企业级应用,社区资源丰富
生产环境打包使用 Rollup,具有高效的代码拆分和 Tree-shaking使用自身机制,支持各种优化,适合复杂应用的打包
依赖预构建使用 ESBuild 进行预构建,速度比传统方法快 10 到 100 倍传统方式处理依赖,速度相对较慢
适用场景小型到中型项目,追求快速开发和高效热更新大型、复杂项目,支持更广泛的功能和场景

使用 vite 创建项目流程

1. 使用 npm 安装 Vite

首先确保你已经安装了 Node.js,然后可以使用以下命令快速安装并创建一个 Vite 项目。

npm create vite@latest

2. 设置项目名称

运行命令后,Vite 会提示你设置项目名称。

✔ Project name: … my-vite-project

3. 选择模板

接下来 Vite 会让你选择一个框架模板。选择你需要的框架(例如 Vue、React 或 Vanilla JavaScript)。

✔ Select a framework: » - Vanilla- Vue- React- Svelte- Preact- Lit- Others

4. cd 项目目录、安装依赖

项目创建完成后,进入项目目录并安装依赖。

cd my-vite-project
npm install

5. 启动开发服务器

安装完依赖后,可以启动 Vite 开发服务器。

npm run dev

开发服务器会自动启动,并通过 http://localhost:5173 提供服务,你可以在浏览器中访问该地址查看项目。

6. 构建项目(生产环境)

当你准备将项目发布到生产环境时,可以使用以下命令进行构建。构建完成后,生成的文件会放在 dist 文件夹中。

npm run build

使用 npm 创建 vue3 项目

D:\linenazi> npm create vue@latestVue.js - The Progressive JavaScript Framework√ Project name: ... linenazi-project
√ Add TypeScript? ... No / Yes
√ Add JSX Support? ... No / Yes
√ Add Vue Router for Single Page Application development? ... No / Yes
√ Add Pinia for state management? ... No / Yes
√ Add Vitest for Unit Testing? ... No / Yes
√ Add an End-to-End Testing Solution? » No
√ Add ESLint for code quality? ... No / Yes
√ Add Vue DevTools 7 extension for debugging? (experimental) ... No / YesScaffolding project in D:\linenazi\linenazi-project...Done. Now run:cd linenazi-projectnpm installnpm run dev

初始化项目:安装 node_modules 依赖

npm i

编辑器 .vscode 设置

.vscode 是 Visual Studio Code (VS Code) 编辑器的一个隐藏文件夹,用于存储与特定工作区相关的配置和设置。这个文件夹通常位于项目根目录中。.vscode 文件夹提供了一种方式来为特定项目自定义 VS Code 的行为和外观,使得团队协作时能够保持一致的开发环境,提升开发效率。

工作区设置

.vscode/settings.json:该文件可以用于定义项目特定的设置,例如代码格式化规则、主题、文件编码等。这些设置只适用于该项目,而不会影响全局配置。

扩展推荐

.vscode/extensions.json:这个文件可以列出推荐的扩展,使团队成员在打开项目时能够看到建议安装的扩展,提升开发体验。

调试配置

.vscode/launch.json:用于配置调试器的设置,定义如何启动和调试应用程序。你可以指定调试的程序、参数、环境变量等。

任务配置

.vscode/tasks.json:可以定义常用的任务(例如构建、测试、运行脚本等),让你可以通过 VS Code 的任务面板轻松执行这些任务。

代码片段

.vscode/snippets 文件夹:可以存放自定义代码片段文件,方便在编写代码时快速插入常用代码块。

键盘快捷键

.vscode/keybindings.json:可以存放自定义的键盘快捷键设置,适用于该工作区。

使用 npm i 安装依赖流程

npm inpm install 的简写,通常用于安装项目的依赖包。npm install 是 Node.js 包管理工具 npm 的一个常见命令,执行时会根据项目中的 package.json 文件安装所需的依赖。npm i 是一个快捷命令,用于安装项目的依赖包,确保项目能够在开发或生产环境中正常运行。

1. 安装项目依赖

npm i 会根据项目根目录中的 package.json 文件安装所有列出的依赖项。

dependencies:应用程序运行时所需的依赖包。
devDependencies:开发环境中使用的依赖包(如测试框架、构建工具等)。

2. 生成或更新 node_modules 文件夹

安装完成后,npm i 会在项目目录下生成一个 node_modules 文件夹,里面包含所有安装的依赖包及其依赖项。如果该文件夹已经存在,npm i 会检查并更新依赖包版本。

3. 生成或更新 package-lock.json

当运行 npm i 时,npm 会根据安装的具体版本生成或更新 package-lock.json 文件,该文件记录了确切的包版本信息,确保团队中的每个人安装的包版本一致。

4. 安装指定版本的依赖

你也可以通过 npm i <package> 来安装特定的依赖包。例如,npm i lodash 会安装最新版本的 lodash,而 npm i lodash@4.17.21 会安装指定版本。

5. 安装全局包

如果使用 -g 选项,例如 npm i -g typescript,该包将被全局安装,这意味着你可以在系统的任何地方使用该包。

6. 自动安装缺失的依赖

node_modules 文件夹丢失或者某些依赖没有安装时,运行 npm i 会自动安装这些缺失的依赖,确保项目正常运行。

vite.config.ts 配置

官方文档地址:https://vitejs.dev/config/

在这里插入图片描述

Vue 3 应用程序的标准启动方式,它展示了如何创建一个 Vue 应用并将其挂载到页面上。通过这种方式,Vue 能够在指定的 DOM 节点中渲染组件,实现动态的用户界面。

1. Vue createApp 工厂函数

createApp 是 Vue 3 中用于创建应用实例的工厂函数,它接受一个根组件作为参数,并返回一个应用实例对象。该对象提供了一系列方法用于配置和挂载应用,比如 mount 方法将应用挂载到指定的 DOM 元素上。createApp 允许开发者在应用级别上注册全局配置和插件,支持使用 Composition API 来管理组件状态和逻辑。它是 Vue 3 应用的入口点,简化了应用的创建和管理过程,使得开发者可以更加灵活地构建复杂的用户界面。

vue 包中导入 createApp 函数。createApp 是用来创建 Vue 应用实例的函数。

import { createApp } from 'vue';

2. App 根组件

App 根组件是 Vue 应用的主要组件,通常用于定义应用的结构、布局和基本逻辑。它是整个 Vue 应用的入口点,包含了其他子组件并负责管理它们的状态和行为。

这里导入了根组件 App,它是一个 Vue 组件,通常是应用程序的主要部分,包含了应用的模板、逻辑和样式。

import App from './App.vue';

3. 创建并挂载应用

createApp(App).mount('#app');

createApp(App):使用 createApp 函数创建一个 Vue 应用实例,并传入根组件 App

.mount('#app'):将创建的 Vue 应用挂载到 DOM 中 id 为 app 的元素上。这意味着 Vue 会控制这个元素及其子元素,提供响应式数据绑定和组件功能。

Chrome vue.js devtools

Chrome Vue.js Devtools 是一个浏览器扩展,专为 Vue.js 应用程序开发和调试设计。它提供了一个直观的用户界面,允许开发者实时查看和修改 Vue 组件的状态、属性和事件。

主要功能包括:组件树视图,展示应用的组件结构和层级;状态查看,实时监控组件的数据和计算属性;事件跟踪,查看组件之间的事件通信;时间旅行调试,支持在状态变化间回退;以及 Vuex 状态管理的集成,便于监控和调试状态管理流。通过这些工具,开发者可以更高效地调试和优化 Vue 应用,提高开发体验。

在这里插入图片描述

插件官方地址:https://chromewebstore.google.com/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd?hl=zh-CN&utm_source=ext_sidebar

Composition API

Composition API 是 Vue 3 引入的一种更灵活、更可复用的编写组件逻辑的方法。它通过 setup() 函数将组件的逻辑按功能组织,而不是像 Options API 那样按 data、methods、computed 等选项分散逻辑。

Options APIComposition API 区别

特性Options APIComposition API
写法使用 datamethodscomputed 等选项组织逻辑使用 setup() 函数,通过组合函数组织逻辑
逻辑组织逻辑通常是按功能分割,难以跨选项共享状态逻辑可以按特性分组,跨功能共享逻辑和状态变得更容易
灵活性灵活性较低,状态和方法在各个选项中分散更加灵活,允许将逻辑和状态提取为可复用的独立函数
代码复用依赖 mixins 和 extends,可能导致命名冲突和难以追踪通过组合函数(Composable),更容易复用和共享逻辑
TypeScript 支持对 TypeScript 的支持较弱,类型推断复杂与 TypeScript 兼容性更好,类型推断更清晰
学习曲线对初学者更友好,易于上手需要更深入的 JavaScript 知识,学习曲线较陡
状态响应式响应式状态由 Vue 自动处理手动使用 refreactive 创建响应式状态
代码结构代码结构清晰,但大型组件会导致多个选项分散逻辑逻辑更加集中,大型组件的逻辑组织更清晰
性能优化Vue 内部自动优化开发者可以更精细地控制性能优化(如懒加载、依赖收集等)

setup 函数概述

setup 函数是 Vue 3 Composition API 的核心,它用于定义组件的逻辑,并在组件实例创建之前执行。setup 函数替代了 Vue 2 中的 datamethodscomputedwatch 等选项,使得逻辑更灵活地组合和复用。

setup 函数在 Vue 3 中为组织和管理组件逻辑提供了极大的灵活性。它将逻辑按功能分组,简化了代码的结构和复用,使得复杂的组件更容易维护和扩展。

setup 函数参数

setup 接受两个参数:props:父组件传递的 props,它是只读的。context:包含 attrsslotsemit,用于访问组件的上下文。

setup(props, context) {
}
props 是父组件传入的属性
context.attrs 包含非 prop 的属性
context.slots 包含插槽内容
context.emit 用于触发事件

setup 函数返回值

setup 函数的返回值决定了模板中可以访问的数据和方法。通常返回一个对象,包含响应式数据、方法、计算属性等。

setup() {const count = ref(0);function increment() {count.value++;}return { count, increment };
}

在模板中可以直接使用 countincrement

<template><button @click="increment">Count: {{ count }}</button>
</template>

setup 响应式数据

setup 中可以使用 Vue 的响应式 API,如 refreactive,来创建响应式状态。

ref:用于处理原始值的响应式数据。
reactive:用于创建复杂对象的响应式数据。
import { ref, reactive } from 'vue';setup() {const count = ref(0);const user = reactive({ name: 'John', age: 30 });return { count, user };
}

setup 生命周期钩子

setup 中,可以使用生命周期钩子(如 onMountedonUpdatedonUnmounted)来处理组件生命周期事件。

import { onMounted, onUnmounted } from 'vue';setup() {onMounted(() => {console.log('Component mounted');});onUnmounted(() => {console.log('Component unmounted');});return {};
}

setup 组合逻辑

通过将逻辑封装到可复用的函数中(Composable),可以提高代码的复用性和可维护性。

import { ref, onMounted } from 'vue';function useCounter() {const count = ref(0);function increment() {count.value++;}return { count, increment };
}setup() {const { count, increment } = useCounter();return { count, increment };
}

setup 函数语法糖

在 Vue 3 中,<script setup> 是一种简化版的 setup 语法糖,旨在使组件代码更加简洁和易读。它自动将 setup() 函数内的逻辑内联到 <script setup> 中,无需显式调用 setup(),大大简化了组件的写法。

<script setup> 语法糖大大简化了 Vue 3 中 setup 函数的写法,使代码更加简洁易读。它自动将声明的变量和函数暴露给模板,省略了传统 setup 函数中的许多重复操作,非常适合开发者快速编写和管理 Vue 组件。

setup 基本语法

使用 <script setup> 时,所有在其中声明的变量、函数、响应式数据等,都可以直接在模板中使用,而不需要通过 return 返回。

<template><div><p>Count: {{ count }}</p><button @click="increment">Increment</button></div>
</template><script setup>
import { ref } from 'vue';const count = ref(0);function increment() {count.value++;
}
</script>

语法糖 vs 常规 setup 函数

<script setup> 中声明的变量、函数、响应式数据、导入的模块等会自动被暴露到模板中,无需 return。避免了传统 setup() 函数的显式返回,代码更清晰、简短。

传统 setup 写法

<template><div><p>{{ message }}</p></div>
</template><script>
import { ref } from 'vue';export default {setup() {const message = ref('Hello, Vue!');return { message };}
}
</script>

使用 <script setup> 语法糖

<template><div><p>{{ message }}</p></div>
</template><script setup>
import { ref } from 'vue';const message = ref('Hello, Vue!');
</script>

Props 和 Emits

<script setup> 中,可以直接使用 definePropsdefineEmits 这两个内置函数来处理 props 和 emits,而不需要显式定义 propsemit

setup 处理 props

<template><p>{{ name }}</p>
</template><script setup>
const props = defineProps({name: String
});
</script>

setup 处理 emit

<template><button @click="handleClick">Click me</button>
</template><script setup>
const emit = defineEmits(['update']);function handleClick() {emit('update', 'New value');
}
</script>

setup 适配 TypeScript

<script setup> 支持 TypeScript,可以直接在声明中使用类型提示,无需额外的 defineComponent 包装。

<script setup lang="ts">
import { ref } from 'vue';const count = ref<number>(0);
</script>

setup 组合逻辑

和传统的 setup 一样,<script setup> 也可以调用组合函数(Composable)以便复用逻辑。

<script setup>
import { ref, onMounted } from 'vue';function useCounter() {const count = ref(0);function increment() {count.value++;}return { count, increment };
}const { count, increment } = useCounter();onMounted(() => {console.log('Component mounted');
});
</script>

ref 创建响应式数据

在 Vue 3 中,ref 是用于创建响应式数据的工具,适用于基本类型(如数字、字符串、布尔值等)或单个变量。ref 包装了一个值,并在这个值发生变化时,自动触发依赖该值的视图更新。

ref 是 Vue 3 中创建响应式数据的基础工具,适用于基本数据类型。通过 .value 访问或修改响应式数据。在模板中,Vue 会自动解包 ref.value,直接使用变量即可。它是让 Vue 组件的状态和视图保持同步更新的核心机制之一。

使用 ref 创建响应式数据

首先需要从 Vue 中导入 ref 函数。使用 ref() 包裹原始值来创建响应式数据,返回的对象会自动追踪其变化并通知视图更新。

import { ref } from 'vue';const count = ref(0);  // 创建一个响应式的 count 变量,初始值为 0

访问和修改 ref 的值

ref 返回的是一个包含 .value 属性的对象,访问和修改这个值时,需要通过 .value

count.value++;  // 修改 count 的值
console.log(count.value);  // 访问 count 的值

template 使用 ref

在模板中可以直接使用 ref,Vue 会自动解包 .value,因此不需要显式访问 .value。在这个例子中,点击按钮会触发 increment 函数,count.value 的值增加,并且自动触发页面视图的更新。

<template><div><p>{{ count }}</p><button @click="increment">Increment</button></div>
</template><script setup>
import { ref } from 'vue';const count = ref(0);  	// 创建响应式数据function increment() {count.value++;  	// 修改响应式数据
}
</script>

ref 的应用场景

基本数据类型:`ref` 适合用于数字、字符串、布尔值等基本类型的数据响应式处理。
DOM 元素引用:`ref` 还可以用于获取和操作 DOM 元素。
<template><input ref="inputRef" placeholder="Type something">
</template><script setup>
import { ref, onMounted } from 'vue';const inputRef = ref(null);  // 创建一个 DOM 元素的 refonMounted(() => {inputRef.value.focus();  // 在组件挂载后,聚焦输入框
});
</script>

reactive 创建响应式数据

在 Vue 3 中,reactive 是用于创建复杂对象(如数组和对象)的响应式数据工具。与 ref 主要用于包装原始数据不同,reactive 会深度将整个对象或数组变成响应式的,因此适合处理嵌套的结构或多个属性。

简单来说,reactive 用于创建对象或数组的响应式数据,适合复杂的数据结构。直接操作 reactive 对象的属性和元素,无需 .valuereactive 会深度追踪对象或数组中所有的变化,自动更新依赖它们的视图。

使用 reactive 创建响应式数据

从 Vue 中导入 reactive 函数。使用 reactive() 包裹一个对象或数组,这样该对象中的所有属性都会变成响应式的。

import { reactive } from 'vue';const state = reactive({count: 0,user: {name: 'John',age: 25}
});

访问、修改 reactive 数据

和普通 JavaScript 对象一样,访问和修改 reactive 对象中的属性无需通过 .value,直接操作对象即可,Vue 会自动追踪所有变化。Vue 会自动跟踪这些属性的变化,并更新依赖这些值的视图。

state.count++;  			// 修改 count 值
state.user.name = 'Alice';  // 修改 user.name

template 使用 reactive

在模板中,可以直接使用 reactive 创建的响应式对象,Vue 会自动追踪依赖并在数据变化时更新视图。在这个例子中,点击按钮会触发 increment 函数,state.count 增加,Vue 会自动更新页面视图。

<template><div><p>Count: {{ state.count }}</p><p>User: {{ state.user.name }}</p><button @click="increment">Increment</button></div>
</template><script setup>
import { reactive } from 'vue';const state = reactive({count: 0,user: {name: 'John',age: 25}
});function increment() {state.count++;  // 修改 count
}
</script>

reactive 应用场景

对象或数组:处理多个属性、嵌套对象、或者数组时使用 `reactive`,它可以让每个属性和元素都变成响应式的。
复杂状态管理:当组件中有多个互相关联的状态时,`reactive` 能让你更自然地管理它们的响应性。

refreactive 区别

特性refreactive
适用场景用于包装原始值(如数字、字符串、布尔值等)用于包装对象或数组,深度响应式
访问方式通过 .value 访问或修改值直接访问或修改对象属性,无需 .value
响应式处理只对包裹的单个值进行响应式处理深度响应式处理,追踪对象所有属性的变化
嵌套结构支持嵌套对象或数组也需要使用 .value 访问自动处理嵌套对象,所有属性都响应式
性能适用于简单的值,性能开销较小适用于复杂对象,可能有较大的性能开销
常用场景计数器、输入框值等简单变量管理表单数据、复杂状态、嵌套对象或列表
类型支持可以与原始类型直接绑定,如 ref<number>处理复杂类型或接口时非常方便
模板解包模板中自动解包 .value,无需手动访问 .value模板中无需额外处理,直接使用对象属性
示例代码const count = ref(0); count.value++;const state = reactive({ count: 0 }); state.count++;

ref 适用于原始值的响应式处理,轻量且直接,但对于复杂对象需要手动处理 .valuereactive 适合管理复杂的对象和数组,深度响应式管理嵌套数据结构,操作更加自然。

更新中······

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

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

相关文章

AI Agent智能应用从0到1定制开发Langchain+LLM全流程解决方案与落地实战

大模型微调实战&#xff1a;精通、指令微调、开源大模型微调、对齐与垂直领域应用29套AI全栈大模型项目实战&#xff0c;人工智能视频课程-多模态大模型&#xff0c;微调技术训练营&#xff0c;大模型多场景实战&#xff0c;AI图像处理&#xff0c;AI量化投资&#xff0c;OPenC…

使用Charles抓包Android App数据

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 抓包环境准备 1. 下载安装charles charles下载地址&#xff1a;https://www.charlesproxy.com/latest-release/download.do 2. SSL代理设置 3. http代理和…

【计算机网络强化】计网强化笔记

第一章 计算机网络体系结构 1.1 计算机网络概述 1.计算机网络由若干个节点和连接这些节点的链路组成 2. 3.计算机网络的组成 ①硬件、软件、协议 ②边缘部分和核心部分 ③通信子网和资源子网 4.电路交换、报文交换和分组交换 ①电路交换 分为三步&#xff1a;建立连接、…

使用SBP打AssetBundle时脚本引用丢失

1&#xff09;使用SBP打AssetBundle时脚本引用丢失 2&#xff09;在UE 5.3中连接Power节点为何10的3次幂等于1009 3&#xff09;如何在Widget中倾斜一张纹理贴图 4&#xff09;如何在打开关卡蓝图时更改游戏模式 这是第401篇UWA技术知识分享的推送&#xff0c;精选了UWA社区的热…

.NET 6.0 WebAPI 使用JWT生成Token的验证授权

1.引入相关程序包JwtBearer注意版本: 2.配置文件appsettings.json写相关配置参数(也可不写&#xff0c;写在程序里面&#xff0c;数据库读取也是一样的) , //JWT加密"JWTToken": {"SecretKey": "jsaduwqe6asdjewejdue7dfmsdfu0sdfmwmsd8wfsd6",…

Postman导出报告

一、下载node.js 导出测试报告我们需要用到一个工具叫做newman&#xff0c;它是node.js开发的一个插件&#xff0c;要使用他需要先下载node.js&#xff0c;安装包可以去官网下载&#xff0c;这里我分享一个 链接: https://pan.baidu.com/s/179yLzwTtLH3eihYs_yxrZA?pwd7bqt 提…

数据分析:主成分以及贡献变量解析

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍分析目的变量的loadings的含义加载依赖包导入数据数据预处理PCA计算PCA图主成分分布系统信息介绍 PCA分析,即主成分分析(Principal Component Analysis),是一种统计方法,用于…

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.3-2.4

目录 第四门课 卷积神经网络&#xff08;Convolutional Neural Networks&#xff09;第二周 深度卷积网络&#xff1a;实例探究&#xff08;Deep convolutional models: case studies&#xff09;2.3 残差网络(ResNets)(Residual Networks (ResNets))2.4 残差网络为什么有用&am…

在虚幻引擎中实时显示帧率

引擎自带了显示帧率的功能 但是只能在编辑器中显示 , 在游戏发布后就没有了 , 所以我们要自己做一个 创建一个控件蓝图 创建画布和文本 , 修改文本 文本绑定函数 , 点击创建绑定 添加一个名为 FPS 的变量 格式化文本 用大括号把变量包起来 {FPS Int} FPS 然后转到事件图表…

RHCS认证-Linux(RHel9)-Ansible

文章目录 一、ansible 简介二 、ansible部署三、ansible服务端测试四 、ansible 清单inventory五、Ad-hot 点对点模式六、YAML语言模式七、RHCS-Ansible附&#xff1a;安装CentOS-Stream 9系统7.1 ansible 执行过程7.2 安装ansible&#xff0c;ansible-navigator7.2 部署ansibl…

一看就会!PS2024下载安装教程详解

PS2024下载方法&#xff1a; PS2024安装教程&#xff1a; 1、右击【PS2024.zip】&#xff0c;选择【解压到PS2024】 2、右击【Set-up.exe】&#xff0c;选择【以管理员身份运行】 3、点击右下角灰色的小文件夹图标&#xff0c;选择【更改位置】 4、选择安装路径后&#xff0c;…

策略模式与工厂模式的区别

《策略模式与工厂模式的区别》 策略模式&#xff08;Strategy Pattern&#xff09; 和 工厂模式&#xff08;Factory Pattern&#xff09; 都是常见的设计模式&#xff0c;虽然它们在设计目标上有一些相似之处&#xff0c;如解耦代码、增强扩展性&#xff0c;但它们的应用场景和…

数字化转型中的供应链管理优化

在当今全球化和数字化的浪潮下&#xff0c;企业供应链管理面临着前所未有的挑战和机遇&#xff0c;企业在数字化转型过程中&#xff0c;如何优化供应链管理成为提升竞争力的关键。通过应用先进技术如RPA机器人流程自动化、大数据分析、物联网等&#xff0c;企业可以显著提高物流…

go解决引入私有包报错“Repository owner does not exist“的两种方式

当你写好引入的私有包,执行go mod tidy报错: Gogs: Repository owner does not exist fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 目前我的两种解决方案: 一、拉群整个…

基于WebServer的工业数据采集系统

一、项目框架及流程 二、http简介 HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写&#xff0c;是用于Web Browser&#xff08;浏览器&#xff09;到Web Server&#xff08;服务器&#xff09;进行数据交互的传输协议。 HTTP是应用层协…

C/C++语言基础--C++构造函数、析构函数、深拷贝与浅拷贝等等相关知识讲解

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 周末休息了&#xff0c;没有更新&#xff0c;请大家见谅哈&#xff1b;构造函数、析构函数可以说便随着C每一个程序&#xff0c;故学构造函数、析构函数是必要的&#xff1b;C语言后面也会继续更新知识点&am…

计算机的错误计算(一百零二)

摘要 探讨 的计算精度问题。 从计算机的错误计算&#xff08;九十九&#xff09;可知&#xff0c; 在IEEE 754-2019的列表中。因此&#xff0c;有必要分析其计算准确度。 例1. 已知 计算 若利用 Python的SciPy库中函数计算&#xff0c;则有&#xff1a; 若用Java的pow函…

通过 LabVIEW 正则表达式读取数值(整数或小数)

在LabVIEW开发中&#xff0c;字符串处理是一个非常常见的需求&#xff0c;尤其是在处理包含复杂格式的数字时。本文通过一个具体的例子来说明如何利用 Match Regular Expression Function 和 Match Pattern Function 读取并解析字符串中的数字&#xff0c;并重点探讨这两个函数…

毕业设计选题:基于ssm+vue+uniapp的英语学习激励系统小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

达梦-华为鲲鹏ARM架构下性能测试最佳实践

一、测试综述 1.1 测试目的 本次测试的目的是验证达梦数据库&#xff0c;在鲲鹏服务器下&#xff0c;不同服务器参数基于sysbench性能压力测试的表现。本次参数是根据为华为鲲鹏arm服务器调优十板斧内建议值调整 成长地图-鲲鹏开发套件开发文档-鲲鹏社区 1.2 通用指标 指标…