avatar
Articles
62
Tags
43
Categories
8
首页
文章
生活
项目
关于
我做开发那些年
Search
首页
文章
生活
项目
关于

我做开发那些年

Vue进阶系列第5篇--Vue实例挂载的过程中发生了什么?
Created2025-12-17|Vue
大家好,我是jvxiao。 这是Vue从入门到精通系列文章的第5篇,今天我们来谈谈剖析一下Vue实例挂载过程中发生了什么。 Vue实例(也可以叫组件)的挂载,说到底就是把我们写的Vue代码,变成页面上能看到、能交互的真实元素的过程。这个过程看似复杂,其实一步步拆解开,都是很朴素的逻辑,尤其是我们常用的Vue 3(比如Nuxt 3背后的核心),挂载流程更是清晰明了。 一、创建应用实例在Vue 3里,没有以前那种全局的Vue实例了,而是用createApp函数来创建一个应用实例。比如说我们导入根组件App.vue后,调用createApp(App),就相当于搭好了一个项目的“架子”。 这个架子里会包含全局配置,比如我们注册的全局组件、自定义指令这些,但这时候还没和页面上的任何元素产生关联,只是一个单纯的配置集合。我们可以在这个阶段给架子添点东西,比如注册全局能用的按钮组件,或者定义一个全局指令,这些都会在后续挂载时生效。 二、调用mount方法接下来就是触发挂载的关键一步——调用mount方法。我们会把mount绑定到页面上一个指定的DOM元素上,通常是#app,比如app.moun...
Vue进阶系列第4篇-- v-show 和 v-if 的实用解析:搞懂用法,选对场景
Created2025-12-12|Vue
大家好,我是jvxiao。 这是Vue从入门到精通系列文章的第3篇,今天我们说的是Vue中的两个指令–v-show和v-if。 在 Vue 开发里,控制元素显示或隐藏是很常见的需求,而 v-show 和 v-if 就是专门干这个活的两个核心指令。它们俩目标一致,都是根据条件(比如一个布尔值、返回布尔值的表达式)来决定元素要不要“露脸”,但用法、原理和适用场景却大不相同。如果用错了,可能会影响页面性能,甚至出现意想不到的问题,今天就把这两个指令的来龙去脉说清楚。 两者的共同点:目标一致,核心功能相同不管是 v-show 还是 v-if,本质上都是“条件渲染工具”。简单说,就是你给它们一个“判断标准”,比如“用户是不是管理员”“开关是不是打开的”,它们就会按照这个标准,决定元素该显示还是隐藏。 比如想让一个按钮只在用户是管理员时显示,用 v-if 可以,用 v-show 也可以(只是背后逻辑不一样),代码写法都很简单: 1234<!-- 用 v-if 实现管理员按钮显示 --><button v-if="isAdmin">删除数据<...
Vue进阶系列第3篇:什么是SPA(单页面应用)? 如何实现一个简单的SPA?
Created2025-12-09|Vue
大家好,我是jvxiao。 这是Vue从入门到精通系列文章的第3篇,今天我们来谈谈和Vue紧密相关的一个东西–SPA。此SPA非各位日常生活中的养生SPA, 而是单页面应用(Single Page Application)。 在现代前端开发中,单页面应用(SPA)已成为主流架构之一,Vue、React、Angular 等框架均以 SPA 为核心设计理念。它凭借流畅的交互体验、高效的资源利用,广泛应用于后台管理系统、移动端应用等场景。 本文将从基础概念出发,对比 SPA 与传统多页面应用(MPA)的核心差异,并通过极简代码实现 hash 模式 SPA,帮助大家快速掌握其工作原理。 一、什么是 SPA(单页面应用)SPA(Single Page Application)即单页面应用,是一种仅加载一个核心 HTML 文件的 Web 应用架构。其核心特征是:页面内容的更新不依赖浏览器的整页刷新,而是通过 JavaScript 动态操作 DOM 节点、异步请求数据,实现视图的局部更新。 可以通俗地理解为:SPA 就像一个 “固定外壳” 的房子,首次加载时会完整加载房屋的基础结构(核心 HT...
Vue中双向绑定是什么?它工作原理是什么?万字长文,一次讲透彻!
Created2025-12-06|ES6进阶
大家好,我是jvxiao。 这是Vue从入门到精通系列文章的第2篇,今天我们来讲一讲Vue中一个非常核心的概念–双向绑定 本文将从概念本质、底层原理出发,结合完整实现逻辑,带大家全面拆解Vue双向绑定的核心机制。 一、核心概念:从单向绑定到双向联动要理解双向绑定,首先要明确其与单向绑定的关联与区别——双向绑定是单向绑定的延伸与闭环,而MVVM架构则为这种闭环提供了理论支撑。 单向绑定的基础逻辑单向绑定指数据模型(Model)到视图(View)的单向同步:当开发者通过代码修改Model中的数据时,框架会自动更新对应的View展示,无需手动操作DOM。这种模式的核心价值是“数据驱动视图”,让开发者专注于数据逻辑而非DOM操作,但它存在一个明显局限:用户对View的交互(如表单输入、按钮点击)无法自动同步回Model,需要手动编写事件处理函数来完成数据更新。 2. 双向绑定的本质闭环双向绑定在单向绑定的基础上,补充了“View到Model的反向同步”: 数据→视图:Model数据变化时,View自动更新; 视图→数据:用户操作View(如输入框输入、下拉框选择)时,Model数据自动...
Vue进阶系列第1篇:说说对Vue的理解,Vue是什么,有什么作用
Created2025-12-06|ES6进阶
大家好,我是jvxiao。 在上一个JavaScript ES6进阶系列文章从简单的let, const一路讲到了日常开发较少使用的Decorator,很多文章也收到了很多各位读者喜欢和推荐,在这里感谢各位读者朋友的支持。 在过去一周中,没有更新新的文章,这是因为我在准备一个新的文章系列–Vue从入门到精通。这一系列文章大概在30篇左右,将涵盖Vue框架中众多核心知识,并会进行适当的源码解读,希望大家喜欢并持续关注。 今天是该系列的第1篇文章,我们来讲讲Vue是什么? 在前端开发日新月异的浪潮中,Vue.js(简称Vue)凭借其简洁的语法、灵活的架构和友好的学习曲线,成为无数开发者构建Web应用的首选框架。要真正掌握Vue,我们需要从Web开发的历史脉络出发,逐步剖析其本质、核心特性,并通过与传统开发及React的对比,明确其定位与优势。 一、Web开发的历史演进:框架为何应运而生?前端技术的发展始终围绕“提升开发效率”与“应对复杂场景”两大核心,Vue的出现是历史演进的必然结果,我们可将其分为三个关键阶段: 1. 静态Web时代(1990s-2000s初)早期Web以“信息展示...
JavaScript ES6中的装饰器(Decorator)是什么?有哪些应用场景?万字长文,谨慎阅读!
Created2025-12-06|ES6进阶
这是JavaScript进阶系列文章的第11篇文章, 今天我们来讲讲装饰器(Decorator),内容有点长,代码有些多,坐稳发车了。 在前端开发中,我们常面临这样的困境:如何在不修改原有代码的前提下,为类、方法或属性添加日志、权限校验、缓存等通用功能? 如果直接在业务逻辑中嵌入这些辅助代码,会导致核心逻辑与通用逻辑耦合,代码可读性和可维护性大幅下降。而 ES6 提案中Decorator(装饰器),正是为解决这一问题而生的优雅方案。 本文将从 Decorator 的核心本质出发,详解其语法特性、使用场景,并结合实战案例说明其在项目中的价值,帮助开发者真正掌握这一“非侵入式扩展”的利器。 Decorator 是什么?核心定义Decorator 是基于 “包装模式”(Wrapper Pattern) 的语法糖,其核心目标是:在不侵入原有代码结构的前提下,为类、类成员(方法/属性)动态扩展功能。 它的本质是一个特殊函数:接收被装饰的“目标对象”作为参数,通过修改或包装目标对象,返回增强后的新对象。简单来说,Decorator 就像给礼物包装——礼物本身(核心业务逻辑)不变,...
说说JavaScript中ES6 module(模块化)的诞生背景、核心语法及应用场景
Created2025-12-06|ES6进阶
这是JavaScript进阶系列文章的第10篇文章, 今天我们要讲的是 JavaScript ES6中一个非常核心的概念,它的出现可以说是统一了JavaScript中模块化规范的三国时代,那么它是什么呢–ES6 Module 诞生背景:终结混乱的模块化革命在ES6 Module出现之前,JavaScript长期缺乏官方模块化标准,前端开发深陷”全局变量污染-命名冲突-依赖混乱”的恶性循环。2010年前后崛起的三大方案各有局限: CommonJS:为Node.js设计的同步加载方案,无法适配浏览器异步环境,require('./module' + num)的动态加载特性也埋下了依赖分析的隐患 AMD:以RequireJS为代表的异步方案,虽解决了浏览器加载问题,但define函数嵌套层级深,语法冗余度高 UMD:兼容多环境的妥协方案,通过大量条件判断实现跨平台,导致代码体积膨胀且维护困难 2015年ES6正式引入Module规范,标志着JavaScript首次在语言层面确立模块化标准。其核心使命是:打通前后端模块化壁垒,提供兼顾语法简洁性、加载高效性与工程可扩...
一文说透ES6 Proxy--从本质到应用场景
Created2025-12-06|ES6进阶
今天是JavaScript进阶系列文章的第9篇文章了,世界就是一个巨大的草台班子,而每个班子里总是少不了诸如“黄牛”、“中间商”这样的角色,今天我们来讲讲ES6中JavaScript中的“中间商”–代理(Proxy)。 一、Proxy的本质定义:对象操作的“拦截器”Proxy是ES6引入的元编程工具,译为“代理”,其核心功能是在目标对象与外界操作之间架设拦截层,所有对目标对象的访问必须经过该层筛选与改写。这种机制打破了对象操作的默认行为,让开发者能以极低侵入性的方式实现逻辑增强。 与传统的Object.defineProperty相比,Proxy的核心优势体现在三方面: 拦截粒度更全面:可监听对象的13种基本操作(如get/set/delete/in等),而非单一属性的读写; 动态性更强:无需提前声明拦截属性,新增属性自动纳入监听范围; 支持更多对象类型:可代理数组、函数甚至类构造器。 所以,不难理解Vue3为什么使用Proxy来重写响应式系统,毕竟,是真的香啊。 二、 Proxy的核心写法:构造器与拦截陷阱1. 基础语法结构Proxy通过构造函...
JavaScript ES6中的生成器(Generator)是什么?有哪些应用场景?一文全说透
Created2025-12-06|ES6进阶
今天是JavaScript进阶系列文章的第8篇文章了,今天我们来讲讲ES6中的生成器(Generator)。 Generator 是 ES6 新加的一种特殊函数,简单说就是能暂停、能继续、能分批次给结果的函数。普通函数一旦调用就从头跑到尾,而它像带了暂停键,想停就停,想继续就继续。核心特点就三个: 怎么写?So easy! 函数名前加 function*(星号跟着 function 写最清楚) 用 yield 当“暂停标记”,碰到它就停,还能把后面的值抛出来 调用后不会立马执行,会返回一个“操作手柄”(生成器对象),按手柄上的 next() 按钮才会启动/继续 12345678910111213// 举个例子:分三次给数字function* numberGenerator() { yield 1; // 第一次暂停,返回1 yield 2; // 第二次暂停,返回2 return 3; // 结束了,返回3}// 拿个操作手柄const gen = numberGenerator();console.log(gen.next()); // &...
聊聊ES6里的Promise:简单理解和实际用法
Created2025-12-06|ES6进阶
在JavaScript里,经常会遇到“异步操作”——就是那些不会马上完成的事情,比如从服务器拿数据、读取文件、设置一个定时器等。 以前处理这些事,全靠“回调函数”,但写多了就容易乱。Promise就是ES6里出来的一个工具,专门帮我们把这些异步操作理清楚。 为啥需要Promise?假设我们要做三件事,而且得按顺序来:先烧水,水开了再泡茶叶,茶泡好了再倒出来喝。用以前的回调函数写法,大概是这样: 1234567烧开水(function(水) { 泡茶叶(水, function(茶) { 倒出来喝(茶, function(结果) { console.log(结果); }); });}); 这看起来还好,但如果步骤再多一点呢?比如烧水前要先洗水壶,泡茶叶前要选茶叶,代码就会一层套一层,像叠罗汉一样,越叠越高。这就是常说的“回调地狱”——看着头晕,改起来也麻烦,哪一步出错了都得一层层找。 Promise的作用,就是把这种“叠罗汉”的写法,变成“排队走”的样子,步骤清楚,出错了也能一起处理。 Promi...
1234…7
avatar
jvxiao
全栈前端开发者 | Vue & Node.js
Articles
62
Tags
43
Categories
8
Follow Me
Recent Posts
3行命令,将 opencode 与移动端飞书连接起来2026-06-12
我在宝塔上部署一个 AI 图片去背景服务,踩了 4 个坑2026-06-09
张雪峰离世的背后:当“人生导师”输给身体,我们该反思什么2026-03-26
虚拟 DOM 要凉了?Vue 3.6 Vapor Mode 凭什么颠覆前端性能?2026-02-03
Cursor 封神,Trae 免费,Claude Code 扫地2026-01-30
Categories
  • ES6进阶11
  • Vue11
  • Vue源码阅读1
  • Web开发9
    • 网络安全1
  • life2
  • 小程序开发1
  • 搭建博客4
Tags
宝塔系统, 移除图片背景 Session 小程序 Vuex JavaScript 微信小程序 Web开发,JQuery 源码阅读 Set Cookie 依赖收集 程序人生 error 闭包,作用域 前端开发 守护进程 Vite Map Pinia Javascript 前端进阶 个人IP Node安装 JavaScript进阶 Vue, JavaScript进阶 Vue Proxy 对象存储 博客搭建 Node opencode, 飞书 npm Token MVVM React 微信云 Web开发 packages 组件 生活
Archives
  • June 2026 2
  • March 2026 1
  • February 2026 1
  • January 2026 11
  • December 2025 19
  • October 2025 3
  • September 2025 2
  • August 2025 4
Website Info
Article Count :
62
Total Word Count :
99k
Unique Visitors :
Page Views :
Last Update :
© 2025 - 2026 By jvxiaoFramework Hexo 7.3.0|Theme Butterfly 5.5.4
Search
Loading Database