- 博客(232)
- 收藏
- 关注
原创 Vue : v-cloak 指令 简单介绍
v-cloak加载时隐藏未编译的插值语法({{ xxx }}编译完成后自动显示真实数据。就像微信加载表情包,先用占位符遮着,加载完再显示真内容。
2025-06-11 21:30:03
146
原创 Vue : v-model 的 3 个修饰符number,trim,lazy
number:输入转数字,避免字符串拼接。.trim:去掉首尾空格,清理脏数据。.lazy:失去焦点才更新,减少实时更新的性能消耗。
2025-06-11 21:19:38
154
原创 Vue 动态绑定行内样式(style)简单讲解
数组语法[样式对象1, 样式对象2]→ 适合组合多组样式。对象语法{ 属性: 值 }→ 适合精准控制单个样式。
2025-06-11 20:06:40
119
原创 Vue 动态绑定 class 简单讲解
Vue 的:class动态绑定,通过数组语法(组合类名)和对象语法(控制类名开关),让 CSS 类名随数据变化灵活更新,轻松实现样式的动态切换,是前端开发中控制元素外观的常用手段。
2025-06-11 19:50:48
475
原创 Vue 里 插值语法{{}}和两个指令(v-text、v-html)的辨析
想简单绑定数据、不怕插值闪烁 → 用{{}}(日常最常用 )。想避免插值闪烁、纯数据绑定 → 用v-text。必须渲染 HTML 标签(比如后台返回带标签的内容 )→ 用v-html(谨慎用,防 XSS )。
2025-06-11 18:58:03
183
原创 Vue 侦听器(watch)的作用、用法、场景(通俗
Vue 侦听器(watch)就是你的“数据变化探测器”盯着你关心的数据(比如订单状态、输入框内容 );数据一变,立刻执行你写的逻辑(发请求、改 DOM );写法简单:在watch选项里,给要监听的数据名写个函数,处理newVal和oldVal。
2025-06-11 17:31:10
431
原创 Vue 组件的生命周期钩子 的简单理解(通俗:用点外卖例子
这四个钩子,覆盖了“数据变了 → 更新 DOM”和“组件销毁 → 清理资源”:更新 DOM 前的 “最后一瞥”。updated:更新 DOM 后的 “收尾操作”。:组件销毁前的 “紧急处理”。unmounted:组件销毁后的 “彻底清理”。
2025-06-11 16:58:01
601
原创 vue的这两个特性:数据驱动视图 与 双向数据绑定的区别
数据驱动视图是 Vue 的底层逻辑(数据变,视图自动变 ),是 “单向的基础同步”;双向数据绑定是基于它的增强功能(数据↔视图互相影响 ),重点解决 “表单交互时,视图改数据” 的场景,本质是语法糖简化代码。简单比喻:数据驱动视图是 “你改数据,框架帮你改页面”;双向数据绑定是 “你改页面(如输入框),框架也帮你改数据,同时数据改了还能改页面”,是双向的闭环。
2025-06-10 22:42:53
540
原创 MVVM 模式,以及 Angular、React、Vue 和 jQuery 的区别与关系
MVVM:是让 “数据和界面自动同步” 的编程思想,不用手动改 DOM。:是基于 MVVM(或类似思想 )的前端框架,用更高效的方式开发复杂网页,让你 focus 数据逻辑,少操心界面更新。jQuery:是简化 DOM 操作的工具库,更偏向 “手动操作界面” ,适合简单交互,和 MVVM 思想无关。简单说:从 jQuery 到 Vue/React/Angular ,是开发思想的升级 —— 从 “手动改界面” ,变成 “只关心数据,让框架自动同步界面” ,写代码更轻松啦 ~
2025-06-10 22:26:17
1146
原创 对DOM操作 与 jQuery的简单理解(通俗
DOM 操作:就是用代码(比如 JavaScript )去操控网页里的元素(改内容、样式、增删、响应用户操作等 )。jQuery:是一个 JavaScript 代码库(框架),专门简化 DOM 操作,让你写更少的代码,还帮你处理浏览器兼容问题,让开发更轻松。DOM 操作是 “做菜” ,jQuery 是 “好用的菜刀、炒勺” ,用它能更快、更方便地做出菜(完成网页交互效果 )。jQuery 是简化 DOM 操作的工具包。
2025-06-10 21:27:03
619
原创 HTML 、CSS 、JavaScript基本简单介绍
HTML 和 CSS 虽不属于传统编程语言(无逻辑处理能力),但它们是构建网页不可或缺的 “描述性语言”。三者结合(HTML + CSS + JavaScript),构成了现代 Web 开发的基石。JavaScript 是一种具有函数优先特性的轻量级、解释型(或即时编译型)的脚本语言。JavaScript 作为脚本语言,凭借轻量、动态、易上手的特性,成为前端开发的标配,并通过运行时环境(如 Node.js)拓展到后端及更多领域。
2025-06-10 21:19:55
938
原创 用二叉链表递归:先序遍历二叉树
先序遍历二叉树代码说明 结构定义: 是二叉树的结点结构,包含 (数据域)、(左孩子指针)、(右孩子指针)。 是指向 的指针,代表整个二叉树。先序遍历逻辑:测试用例: 主函数里手动构建了一棵简单二叉树,结构是: 先序遍历结果会是: 。
2025-06-05 17:44:03
247
原创 KMP 算法中 next 数组的构建函数 get_next
get_next匹配成功:扩展当前前缀长度,并记录next值。匹配失败:回退到更短的前缀位置(通过next数组),继续尝试匹配。
2025-06-05 14:39:04
601
原创 KMP算法:如何通过 next 数组推导模式串该从哪里继续匹配
j + 1是下一个要计算next值的位置,代表模式串的 “当前处理位置 + 1”。模式串第j个字符 ≡ 模式串第next[j]个字符。这一步的本质是:利用模式串自身的 “部分匹配”,让next数组 “继承” 匹配长度,避免重复计算。简单说,j + 1是递推的 “下一步位置”,是 “能复用匹配成果时的递推公式”—— 核心就是用已知的next[j]推导未知的,让模式串自己 “记住” 该回退到哪。t[j]!= t[k]类比:当前字符不匹配,说明 “这条路走不通,得回到k的‘记忆位置’重新找”。结论。
2025-06-05 14:16:54
522
原创 串:BF算法(朴素的魔术匹配算法)
教材经典 BF 算法基于定长数组SString,下标从1开始。通过i(主串指针)和j(模式串指针)的移动、回退实现匹配。适应下标从 1 开始的设计(和日常代码习惯不同)。掌握回退公式的逻辑(让主串重新从 “上一次起始位置 +1” 开始匹配)。
2025-06-05 13:43:11
333
原创 判断:所谓“循环队列”是指用单向循环链表或者循环数组表示的队列
循环队列的 “循环” 是逻辑上的下标循环(数组实现)或简单链表头尾标记,不是必须用 “单向循环链表” 或 “循环数组” 物理结构,所以题目错误。
2025-06-05 10:49:10
149
原创 卡特兰数简单介绍
定义:卡特兰数 \(C_n\) 用于计数满足特定 “不交叉、不冲突” 约束的组合情况,是一种递归定义的数列。公式递归式:(通过子问题组合推导)。闭合式(常用):) 是组合数,表示从 2n 个元素选 n 个的方式数,再通过约束非法情况)
2025-06-04 21:22:54
362
原创 栈的应用:表达式求值
栈在表达式求值中的核心作用是“管理运算顺序”用OPTR栈 “暂缓” 低优先级的运算符,保证高优先级的先计算。用OPND栈存操作数和中间结果,随时弹出参与计算。整个过程靠 “算符优先关系表” 指挥,实现自动遵循 “先乘除后加减、先括号内后括号外” 的规则。
2025-06-04 20:07:59
572
原创 双栈(栈顶指针的语义,数组下标利用与上一篇有差别)
DblStack的定义// 栈元素类型(代码中用 int)// 数组:存储两个栈的元素int bot[2];// 栈底指针:bot[0] 是栈0的底,bot[1] 是栈1的底int top[2];// 栈顶指针:top[0] 是栈0的顶,top[1] 是栈1的顶} DblStack;双向栈是一种空间复用的经典设计,适合两个栈 “互补使用” 内存的场景(比如编译器的词法分析栈和语法分析栈)。核心逻辑是双栈顶指针向中间生长,通过简单的指针移动实现入栈、出栈。
2025-06-04 19:29:44
959
原创 双栈共享一个栈空间
V:数组,存两个栈的数据。b[0]:栈 0 的底部下标(固定为 0)。b[1]:栈 1 的底部下标(固定为m-1t[0]:栈 0 的栈顶下标(初始和b[0]一样,入栈时增大)。t[1]:栈 1 的栈顶下标(初始和b[1]一样,入栈时减小)。#define MAXSIZE 100 // 数组最大长度(双栈共享)// 双栈结构体// 共享的数组int b[2];// 两个栈的底部下标(b[0]=0,b[1]=MAXSIZE-1)int t[2];
2025-06-04 19:11:39
1010
原创 循环链表与循环队列的区分与对比
循环链队的 “循环”是链表节点的物理连接形成环,依靠指针跳转;循环队列的 “循环”是数组下标的逻辑循环,依靠模运算实现位置复用。
2025-06-04 17:20:08
290
原创 栈,递归,递归工作栈(通俗
栈是函数调用的 “小本本”:负责记住谁调用了谁、传了什么参数、执行完该回哪。嵌套调用:像 “接力打电话”,后打的电话(函数)先挂(返回)。递归调用:自己给自己 “接力打电话”,每一层的信息存在栈里,返回时依次处理。
2025-06-04 15:51:54
871
原创 头指针 VS 头节点 VS 首元节点
在链表结构中,头指针、头节点、首元节点是容易混淆的概念,它们的定义、作用及区别如下,帮你清晰梳理三者的关系:以带头节点的链表和不带头节点的链表为例:
2025-06-02 19:29:06
273
原创 系统调用与程序接口的关系
系统调用是程序接口的重要组成部分 ,是操作系统专门为应用程序设置的获取 OS 服务的途径。它是应用程序与操作系统内核通信的桥梁 ,当应用程序需要操作系统提供底层服务时,就通过系统调用实现。与一般函数调用不同,系统调用涉及用户态到核心态的切换,调用过程更为复杂,且调用的是操作系统内核中的功能模块。
2025-06-02 15:40:48
327
原创 进程同步:生产者-消费者 题目
(缓冲区空闲位置数,初值为缓冲区大小);经典生产者 - 消费者问题。(缓冲区产品数,初值为 0);(互斥锁,初值为 1)。
2025-05-31 17:33:13
536
原创 操作系统原理第8章:文件管理 重点内容
常见的实现方式有基于索引节点的共享(多个目录项指向同一个索引节点 )和基于符号链接的共享(创建一个特殊文件,内容为指向共享文件的路径 )。比如文本文件,数据按顺序依次排列,就像水流一样,系统不了解也不关心文件内部结构,用户在使用时可按字节或字符偏移量来操作文件内容。在传统文件系统中,文件目录项包含文件名和文件物理地址等信息,引入索引节点后,目录项只包含文件名和指向索引节点的指针。例如在一个学生信息文件中,每个学生的姓名、学号、成绩等相关信息组成一条记录,多条记录构成整个文件。
2025-05-30 16:43:55
709
原创 请求分页中的内存分配
最小物理块数是确保进程能够正常运行所需的最少物理块数量。它是一个基础保障值,若分配的物理块数少于这个值,进程可能因无法完整加载必要页面而无法正常执行。例如,一个简单程序可能至少需要 3 个物理块来存放关键代码和数据页,少于 3 块就无法启动或运行出错。
2025-05-30 10:49:57
387
原创 段页式存储管理方式的地址变换过程
将找到的物理块号 b 与逻辑地址中的页内地址 W 组合,形成最终的物理地址。物理块号确定了物理页面在内存中的起始位置,页内地址确定了在该物理页面内的偏移位置,二者结合就能在主存中准确访问到所需数据。逻辑地址被划分为三个部分:段号 S、页号 P 和页内地址 W。这是地址变换的起始数据,程序访问内存时给出这样的逻辑地址形式。
2025-05-30 09:39:11
412
原创 哲学家进餐问题
哲学家进餐问题是操作系统中用于演示进程同步与死锁的经典案例,由荷兰计算机科学家迪科斯彻提出。问题描述了多个进程(哲学家)竞争共享资源(筷子)时可能出现的死锁现象,以及如何通过不同的同步机制避免死锁。死锁本质:多进程竞争共享资源时,若满足死锁四条件,会导致进程永久阻塞。解决方案核心破坏请求与保持条件:AND 信号量一次性申请所有资源。破坏循环等待条件:限制哲学家数量、奇偶编号策略。集中管理资源:管程机制封装资源操作,避免分散控制导致的错误。实际应用启示。
2025-05-30 08:57:16
906
原创 读者 - 写者问题
读者 - 写者问题是操作系统中用于演示进程同步的经典案例,描述了多个读者和写者对共享数据区的并发访问控制问题。其核心是协调读者(读取数据)和写者(修改数据)的行为,确保数据的一致性和访问效率。核心矛盾:平衡多读操作的并发性和写操作的互斥性,避免数据不一致。解决方案核心读者优先:通过read_count计数实现读者并发,写者互斥。写者优先:通过记录写者等待,强制读者等待写者。实际意义在数据库事务管理中,读锁(共享锁)和写锁(排他锁)的设计思想源于此问题。
2025-05-30 08:56:16
775
原创 固定分区内存分配
这是一种早期的内存分配策略,将内存空间划分为若干个大小固定的分区,每个分区可容纳一个作业。操作系统通过维护一个固定分区使用表来管理这些分区。
2025-05-30 08:55:33
203
Scala:学生成绩信息txt文件
2025-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人