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 的目标是在保持代码易读易维护的同时,尽量减少性能损失。
选择哪种方法要考虑多个因素:
Vue.js 结合了两种工作方式:
纯运行时:直接提供数据给渲染函数
运行时 + 编译时:Vue.js 使用这种方式,既灵活又能优化性能
纯编译时:提前编译所有代码,性能好但不够灵活
Vue.js 选择中间路线,在构建时编译模板,在运行时处理动态变化。
虚拟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 引入了几个重要优化:
静态提升:把不变的部分提到函数外面,避免重复创建
补丁标记:给动态内容加标记,更新时更快找到变化
Tree-shaking:移除没用到的代码,减小文件大小
渲染器负责把虚拟DOM变成真实的网页元素。它的工作步骤:
创建对应类型的DOM元素
设置属性和事件
处理子元素
把元素添加到页面中
更新时,渲染器会比较新旧虚拟DOM,只更新变化的部分。
当我们创建一个Vue项目并运行时:
启动阶段
npm create vue@latest
npm install
npm run dev
编译阶段
Vite 开发服务器启动
@vitejs/plugin-vue 处理 .vue 文件
编译器把模板转换成渲染函数
运行时阶段
浏览器加载JavaScript代码
创建Vue应用
执行渲染函数
生成虚拟DOM
渲染器把虚拟DOM变成真实DOM
在开发过程中,当你修改代码保存后,Vue能够立即更新页面而不需要刷新。这是通过Vite的热更新功能实现的:
检测文件变化
重新编译改变的组件
替换旧的组件实例
保持当前状态不变
合理使用模板:对于大多数情况,模板比手写渲染函数更易维护
注意性能:在列表渲染中使用key属性,帮助Vue识别元素
利用组合式api:Vue 3的组合式API让代码组织更灵活
理解响应式:知道什么情况会触发重新渲染
Vue.js 通过智能的架构设计,在易用性和性能之间找到了很好的平衡。从你写代码到网页显示,Vue处理了很多复杂的工作:
编译器把模板转成渲染函数
响应式系统跟踪数据变化
虚拟DOM描述页面结构
渲染器高效更新真实DOM
理解这些原理不仅有助于解决实际问题,还能帮助我们在合适的场景做出合适的技术选择。无论是简单的展示页面还是复杂的单页应用,Vue.js 都提供了相应的工具和模式来高效完成开发工作。
最重要的是,Vue的设计让开发者可以专注于业务逻辑,而不是底层细节,这正是它如此受欢迎的原因。
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!
同时针对大段的文本,不能整段的去读,要按照标点符号进行断句处理。重点当然就是先获取到当前标签上的文本,再把文本转化成语音即可。
CSS以图换字的技术,很久都没人提起了。它是一种在h1标签内,使用图像替换文本元素的技术,使页面在设计和可访问性之间达到平衡。本文将详细介绍CSS以图换字的9种方法
在网页开发中,经常会遇到把一些通用内容的页面集中到一个页面中,需要使用这些页面只需要包含引入即可,这样有利于维护和修改,当通用页面修改时只需更改一个文件就可以了,不需要每个文件单独处理。
开发网站之前,你需要知道哪些事情呢?每个开发者的答案可能都不太相同,这里整理为6个方面:界面和用户体验、安全性、性能(Performance)、搜索引擎优化、技术(Technology)、解决bug
理解大型分布式网站你必须知道这些概念:1. I/O优化、2. Web前端调优、3.服务降级(自动优雅降级)、4.幂等性设计、5.失效转移、6.性能优化、7. 代码优化、8. 负载均衡、9.缓存等
每一个网页或者说是web页都有其固定的后缀名,不同的后缀名对应着不同的文件格式和不同的规则、协议、用法,最常见的web页的后缀名是.html和.htm,但这只是web页最基本的两种文件格式,今天我们来介绍一下web页的其它一些文件格式。
网页自动跳转,是指当用户访问某个网页时,被自动跳转到另一个网页中去。网页自动跳转的主要作用是,当域名变更后,或者网站里的一个或多个网页被删除后,可以使用这种方式将用户引导到其它正常的网页中去,从而留住用户。
锚链链接是一个非常重要的概念,在网页中增加恰当的锚链接,会让所在网页和所指向网页的重要程度有所提升,从而影响到关键词排名。锚链接对SEO的作用主要体现在以下几个方面
HTML几乎是平铺直叙的。CSS是一个伟大的进步,它清晰地区分了页面的结构和外观。在本教程中,您将了解在浏览器中看到的内容是如何实际呈现的,以及如何在必要时进行抓取。
VMware Workstation提供了两种虚拟机上网方式,一种bridge,一种NAT,bridge可以获得公网地址,而NAT只能是内网地址了。例1:在虚拟机内搭建http服务器,使用公网地址访问,例2: ssh端口映射
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!