数据结构
CodingElemType在定义数据结构时,经常使用ElemType是为了表示数据结构中存储的元素的类型。ElemType通常是一个抽象的数据类型,可以根据实际情况来具体定义。 使用ElemType的好处有以下几点: 灵活性:ElemType可以根据实际需要选择不同的数据类型,比如整数、浮点数、字符、结构体等。这样可以适应不同的数据结构和算法需求。 可读性:使用ElemType可以使代码更加易读和易理解,因为它提供了对存储元素类型的清晰描述。 可扩展性:通过定义ElemType,可以方便地扩展数据结构,以适应未来的需求变化。如果需要修改存储元素类型,只需修改ElemType的定义,而不需要改动整个数据结构的代码。 代码复用性:使用ElemType可以提高代码的复用性,因为可以将同一类型的数据结构和算法应用于不同的ElemType上。 定义一个结构体,构造好如下函数 定义一个比较函数,用于比较结构体,不等返回0,相等为真 (__Compare) 定义一个输出函数,用于输出结构体,有点像重写toString(__Print) 定义类似构造函数的函数(create_struct...
windows docket安装
windows设置功能-> 启用或关闭Windows功能 适用于Linux 的 Windows 子系统 虚拟机平台 重启电脑,在命令提示符窗口输入以下指令: 12wsl --set-default-version 2wsl --update --web-download 安装dockerdocker 安装包下载好以后安装即可 如果想指定安装目录,管理员身份用命令提示符窗口进入下载的包的目录 1start /w "" "Docker Desktop Installer.exe" install --installation-dir=D:\dev\Docker close and log out 会重新登录Windows dock run hello-world 出现以下界面表示docker安装成功
Pinia
Vue 3 状态管理工具 PiniaPinia 简介与官方定位在掌握 Vue 3 核心语法后,进入项目实战前需要引入状态管理工具。Pinia 是 Vue 官方目前最新推荐的状态管理库,已被正式纳入 Vue 官方生态系统。在 Vue 官方文档中,Pinia 已全面替代 Vuex 成为首选的状态管理方案。虽然 Pinia 与 Vuex 均可在 Vue 3 中进行状态管理,但官方强烈推荐使用 Pinia。 Pinia 与 Vuex 的核心优势对比更简洁的 API 设计相较于 Vuex,Pinia 提供了更清晰、简单的 API,大幅降低了学习成本。 Vuex 的核心概念:包含 state、mutation、action、getter 以及用于分模块的 module,概念繁多。在 Vuex 中,异步操作需通过 action 处理,且 action 不能直接修改 state,必须通过 commit 提交 mutation 来修改数据,逻辑较为繁琐。 Pinia 的核心概念:仅保留了 state(提供数据)、action(处理业务逻辑)和 getter(基于 state 的计算属性)三个核心...
Vue2到vue3
Vue 3入门与优势解析学习 Vue 3 的核心驱动力市场需求与薪资提升在前端开发岗位中,技术栈的掌握程度直接决定了薪资水平与职业发展。 Vue 2:通常适用于职业起步阶段,能够帮助开发者获取基础薪资。 Vue 3:已成为获取中高薪的必备核心技能。掌握 Vue 3 能够显著提升开发者的核心竞争力。 官方版本迭代策略Vue 作者尤雨溪(Evan You)及官方团队已明确 Vue 3 的战略地位: 默认版本:Vue 3 现已成为脚手架创建项目及官方文档展示的默认版本。 版本维护:Vue 2 已停止新增功能,仅进行日常维护与漏洞修复。官方全面主推 Vue 3 生态。 平滑的学习曲线与向前兼容从 Vue 2 升级到 Vue 3 的学习成本极低: 向前兼容:Vue 3 兼容了绝大部分 Vue 2 的核心语法。 快速过渡:具备 Vue 2 基础的开发者,仅需极短时间即可掌握 Vue 3 的核心特性与语法差异,实现技术栈的平滑升级。 Vue 3 的四大核心优势Vue 3 在底层架构与 API 设计上进行了全面重构,具备以下四大核心优势: 更易维护 组合式 API (Composit...
Vuex状态管理全套用法
Vuex 状态管理入门Vuex 的核心概念 官方定义:Vuex 是一个专为 Vue.js 应用程序开发的状态管理工具。 概念解析: 工具属性:可将其理解为 Vue 生态中的一个核心插件。 状态定义:在 Vuex 的语境中,状态即数据。 核心功能:Vuex 的核心作用是帮助开发者管理应用中的数据。 管理的数据类型:Vuex 主要用于管理通用数据,即多组件共享的数据。 典型案例(购物车场景):在购物车页面中,商品数量的增减操作不仅影响当前商品列表的显示,还需要同步更新底部结算组件的总价,甚至在后续的确认订单页面中也需要调用该数据。此类跨组件频繁使用的数据,即为通用数据。 Vuex 的应用场景Vuex 主要适用于以下两大核心场景,其本质特征是数据的通用性与多组件共享: 多组件读取同一状态 某个状态需要在多个不同的组件中被读取和渲染。 示例:用户登录后保存的个人信息。该信息可能同时需要在首页、商品详情页、订单页等多个组件中展示。虽然不一定频繁修改,但多处均需使用。 多组件共同维护同一状态 多个组件不仅需要读取数据,还需要对该数据进行修改和更新。 示例:即使只有少数几个组件...
Vue CLI 自定义创建项目与 ESLint 代码规范
Vue CLI 自定义创建项目与工程化配置在之前的学习中,已经掌握了 Vue Router 的基本使用步骤。但在实际开发中,手动配置路由存在明显的痛点:每次创建新项目都需要手动安装 vue-router、导入并创建路由实例、配置路由规则以及搭建初始项目骨架,过程繁琐且效率低下。 为了解决这一问题,可以使用 Vue CLI 的自定义创建项目功能,在初始化阶段一次性搭建好包含路由及代码规范的完整项目骨架。本节课的核心目标是掌握自定义创建项目的流程,并初步引入 ESLint 代码规范工具,为后续学习 Vuex 状态管理以及企业级项目开发奠定基础。 自定义创建项目实操步骤初始化项目确保已全局安装 Vue CLI 脚手架。在目标目录下打开终端(如 PowerShell),执行以下命令创建项目: 1vue create 项目名称 例如,创建一个名为 demo 的移动端测试项目: 1vue create demo 选择项目特性 (Features)命令执行后,脚手架会提示选择预设模式。使用键盘上下方向键选择第三项 Manually select features(自定义选择特性),按回车确认。...
Vue路由
单页应用程序与前端路由单页应用程序概述单页应用程序(Single Page Application,简称 SPA)是指所有的功能都在一个HTML页面上实现的应用程序。在基于Vue等现代前端框架开发网站时,构建出的完整网站应用通常都属于单页应用程序。 核心特征:整个应用仅包含一个完整的HTML页面,页面加载后,通过JavaScript动态更新页面内容,而不会重新加载整个页面。 典型代表:网易云音乐Web端等现代Web应用。 单页应用与多页应用的区别与单页应用相对应的是多页应用程序(Multi-Page Application,简称 MPA),如传统的京东、淘宝等电商网站。两者在页面切换时的表现存在本质差异: 单页应用(SPA)的页面切换 切换内容时,公共部分(如顶部导航栏)不会刷新,保持复用状态。 仅对需要更新的内容区域进行局部替换和渲染。 整个过程在同一个HTML页面内完成,无页面跳转的白屏现象。 多页应用(MPA)的页面切换 每次点击链接或切换标签页,都会跳转到一个新的页面。 整个页面(包括公共导航区域)都会进行重新加载和渲染。 页面与页面之间相互独立,切换时伴随...
Vue自定义指令与插槽
Vue2 自定义指令自定义指令概述内置指令与自定义指令在Vue框架中,系统内置了一系列指令(如 v-html、v-model、v-for 等),这些内置指令由Vue内部提供,各自拥有独立的功能。除了使用内置指令外,开发者还可以根据业务需求自行封装指令,这类指令被称为自定义指令。常见的自定义指令包括用于自动聚焦的 v-focus、控制加载效果的 v-loading 以及实现图片懒加载的 v-lazy 等。 自定义指令的核心作用自定义指令的主要作用是封装底层的DOM操作,从而扩展Vue的额外功能。通过将重复的DOM操作逻辑封装到指令内部,可以有效简化业务代码,提高代码的复用性和可维护性。 自定义指令的基础语法需求场景:页面加载自动获取焦点假设需求为:当页面加载完成后,使特定的输入框元素自动获取焦点。 传统实现方案及其局限性 HTML属性方案:使用 autofocus 属性。该方案在部分浏览器(如Safari)中存在兼容性问题,不推荐作为唯一方案。 DOM操作方案:在Vue组件的 mounted 生命周期钩子中,通过 this.$refs 获取DOM元素并调用其 focus() 方法。...
Vue 组件通信
组件通信概述组件通信是指不同 Vue 组件之间进行数据传递与事件交互的机制。Vue 采用单向数据流设计原则,每个组件的数据(data)具有独立作用域,组件仅能直接访问自身定义的数据,无法直接读取或修改其他组件的数据。 例如:组件 A 的 data 中定义的变量 message,在组件 B 的模板或逻辑中无法直接引用。若组件 B 需要使用该值,必须由组件 A 主动通过标准化的通信机制将数据传递给组件 B。 因此,组件通信的本质是建立受控、可追溯、符合响应式原理的数据流动通道,其具体方案的选择取决于组件之间的关系类型。 组件关系分类在 Vue 应用中,组件间关系可严格划分为两类: 父子关系 定义:一个组件(父组件)在模板中直接渲染另一个组件(子组件),即子组件标签作为父组件模板的一部分被声明。 判定标准:存在明确的 DOM 包含层级,子组件实例由父组件创建并管理生命周期。 示例:1234567<!-- 父组件 Parent.vue --><template> <div> <Child /> <!-- Child 是 Par...
Vue组件基础
Vue 2 组件化开发与根组件详解组件化开发概述组件化开发的定义组件化开发是指将一个完整的网页或应用界面,按照功能与职责划分为若干个独立、可复用的单元——即组件。每个组件均具备以下三个基本要素: 独立的结构(template):定义组件的 HTML 模板; 独立的样式(style):定义组件专属的 CSS 或预处理器样式; 独立的行为(script):定义组件的数据、方法、计算属性、侦听器及生命周期钩子等逻辑。 传统开发模式的局限性在未采用组件化开发的项目中,通常将全部 HTML 结构、CSS 样式与 JavaScript 逻辑集中于单一文件中: 所有 DOM 结构写入一个 HTML 文件; 所有样式通过 <link> 引入或内联于 <style> 标签; 所有交互逻辑集中于一个或多个 JS 文件。 该模式在小型项目中具有开发便捷性,但存在显著缺陷: 可维护性差:当页面代码量达数百行时,定位特定模块的结构、样式或逻辑异常困难; 复用性缺失:相同功能模块(如页头、页脚)需在多处重复编写,修改需同步多处; 协作效率低:...
