理解 Vue.js 如何工作:从编写代码到显示网页

更新日期: 2025-10-14 阅读: 38 标签: 网页

vue.js 是现在很受欢迎的网页开发框架。它让创建网页变得简单,但背后有很多复杂的工作原理。了解这些原理,能帮助我们写出更好的代码


两种编程方式:命令式和声明式

开发网页有两种主要方式:

一种是命令式,就像给电脑下达详细的步骤指令:

// 创建一个div元素并设置内容和点击事件
const div = document.querySelector('#app')
div.innerText = 'hello world'
div.addEventListener('click', () => { alert('ok') })

这种方式很直接,但代码多了会很难维护。

另一种是声明式,就像告诉电脑你想要什么结果:

<div @click="() => alert('ok')">hello world</div>

Vue.js 使用声明式方法。你只需要描述网页应该长什么样,Vue.js 负责处理中间的所有步骤。


性能的平衡

声明式方法比直接操作dom要多一个步骤:找出需要改变的地方。这会影响性能。Vue.js 的目标是在保持代码易读易维护的同时,尽量减少性能损失。

选择哪种方法要考虑多个因素:

方法学习难度维护性性能适用情况
原生JavaScript最好简单页面
虚拟DOM中等复杂应用
innerhtml较差静态内容

Vue.js 的工作方式:运行时和编译时

Vue.js 结合了两种工作方式:

纯运行时:直接提供数据给渲染函数
运行时 + 编译时:Vue.js 使用这种方式,既灵活又能优化性能
纯编译时:提前编译所有代码,性能好但不够灵活

Vue.js 选择中间路线,在构建时编译模板,在运行时处理动态变化。


虚拟DOM:Vue的核心

虚拟DOM是一个JavaScript对象,用来描述真实的网页结构:

const vnode = {
    tag: 'div',           // 标签名
    props: {              // 属性
        onClick: () => alert('ok')
    },
    children: 'hello world' // 子内容
}

在Vue中,我们通常用h函数来创建虚拟DOM:

import { h } from 'vue'

export default {
    render() {
        return h('div', { 
            onClick: () => alert('ok') 
        }, 'hello world')
    }
}

这等同于写模板:

<div @click="() => alert('ok')">hello world</div>

虚拟DOM的好处:

  • 批量更新:合并多次操作

  • 跨平台:同一套代码可以在不同环境运行

  • 智能更新:只更新变化的部分


组件:构建块

组件是Vue的基础 building block。一个组件可以是一个对象或函数,返回要显示的虚拟DOM。


编译器:从模板到代码

编译器把Vue模板转换成JavaScript代码。例如这个组件:

<template>
    <div @click="handler">
        hello world
    </div>
</template>

<script>
export default {
    methods: {
        handler: () => alert('ok')
    }
}
</script>

会被编译成:

export default {
    methods: {
        handler: () => alert('ok')
    },
    render() {
        return h('div', { onClick: handler }, 'hello world')
    }
}


Vue 3 的优化技巧

Vue 3 引入了几个重要优化:

  1. 静态提升:把不变的部分提到函数外面,避免重复创建

  2. 补丁标记:给动态内容加标记,更新时更快找到变化

  3. Tree-shaking:移除没用到的代码,减小文件大小


渲染器:从虚拟到真实

渲染器负责把虚拟DOM变成真实的网页元素。它的工作步骤:

  1. 创建对应类型的DOM元素

  2. 设置属性和事件

  3. 处理子元素

  4. 把元素添加到页面中

更新时,渲染器会比较新旧虚拟DOM,只更新变化的部分。


完整的渲染过程

当我们创建一个Vue项目并运行时:

  1. 启动阶段

    npm create vue@latest
    npm install
    npm run dev
  2. 编译阶段

    • Vite 开发服务器启动

    • @vitejs/plugin-vue 处理 .vue 文件

    • 编译器把模板转换成渲染函数

  3. 运行时阶段

    • 浏览器加载JavaScript代码

    • 创建Vue应用

    • 执行渲染函数

    • 生成虚拟DOM

    • 渲染器把虚拟DOM变成真实DOM


热更新:开发时的便利

在开发过程中,当你修改代码保存后,Vue能够立即更新页面而不需要刷新。这是通过Vite的热更新功能实现的:

  1. 检测文件变化

  2. 重新编译改变的组件

  3. 替换旧的组件实例

  4. 保持当前状态不变


实际开发建议

  1. 合理使用模板:对于大多数情况,模板比手写渲染函数更易维护

  2. 注意性能:在列表渲染中使用key属性,帮助Vue识别元素

  3. 利用组合式api:Vue 3的组合式API让代码组织更灵活

  4. 理解响应式:知道什么情况会触发重新渲染


总结

Vue.js 通过智能的架构设计,在易用性和性能之间找到了很好的平衡。从你写代码到网页显示,Vue处理了很多复杂的工作:

  • 编译器把模板转成渲染函数

  • 响应式系统跟踪数据变化

  • 虚拟DOM描述页面结构

  • 渲染器高效更新真实DOM

理解这些原理不仅有助于解决实际问题,还能帮助我们在合适的场景做出合适的技术选择。无论是简单的展示页面还是复杂的单页应用,Vue.js 都提供了相应的工具和模式来高效完成开发工作。

最重要的是,Vue的设计让开发者可以专注于业务逻辑,而不是底层细节,这正是它如此受欢迎的原因。

本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!

链接: https://fly63.com/article/detial/13005

网页中文本朗读功能开发实现分享

同时针对大段的文本,不能整段的去读,要按照标点符号进行断句处理。重点当然就是先获取到当前标签上的文本,再把文本转化成语音即可。

网页开发中利用CSS以图换字的多中实现方法总汇

CSS以图换字的技术,很久都没人提起了。它是一种在h1标签内,使用图像替换文本元素的技术,使页面在设计和可访问性之间达到平衡。本文将详细介绍CSS以图换字的9种方法

如何嵌套一个网页html到另一个html中

在网页开发中,经常会遇到把一些通用内容的页面集中到一个页面中,需要使用这些页面只需要包含引入即可,这样有利于维护和修改,当通用页面修改时只需更改一个文件就可以了,不需要每个文件单独处理。

网站开发需要哪些知识_网页开发你需要知道的6件事

开发网站之前,你需要知道哪些事情呢?每个开发者的答案可能都不太相同,这里整理为6个方面:界面和用户体验、安全性、性能(Performance)、搜索引擎优化、技术(Technology)、解决bug

理解大型分布式网站你必须知道这些概念

理解大型分布式网站你必须知道这些概念:1. I/O优化、2. Web前端调优、3.服务降级(自动优雅降级)、4.幂等性设计、5.失效转移、6.性能优化、7. 代码优化、8. 负载均衡、9.缓存等

网页后缀html、htm、shtml、shtm有什么区别?

每一个网页或者说是web页都有其固定的后缀名,不同的后缀名对应着不同的文件格式和不同的规则、协议、用法,最常见的web页的后缀名是.html和.htm,但这只是web页最基本的两种文件格式,今天我们来介绍一下web页的其它一些文件格式。

html网页自动跳转方法_整理网页自动跳转的5种方法

网页自动跳转,是指当用户访问某个网页时,被自动跳转到另一个网页中去。网页自动跳转的主要作用是,当域名变更后,或者网站里的一个或多个网页被删除后,可以使用这种方式将用户引导到其它正常的网页中去,从而留住用户。

html页面锚点链接对SEO的作用,以及实现描点的三种方式

锚链链接是一个非常重要的概念,在网页中增加恰当的锚链接,会让所在网页和所指向网页的重要程度有所提升,从而影响到关键词排名。锚链接对SEO的作用主要体现在以下几个方面

使用 BeautifulSoup 和 Selenium 进行网页爬取

HTML几乎是平铺直叙的。CSS是一个伟大的进步,它清晰地区分了页面的结构和外观。在本教程中,您将了解在浏览器中看到的内容是如何实际呈现的,以及如何在必要时进行抓取。

实现主机访问虚拟机网页的方法总结

VMware Workstation提供了两种虚拟机上网方式,一种bridge,一种NAT,bridge可以获得公网地址,而NAT只能是内网地址了。例1:在虚拟机内搭建http服务器,使用公网地址访问,例2: ssh端口映射

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!