当前位置: 首页 > news >正文

通俗易懂的理解Vue.js

一句概括(电梯话)

Vue 是一个用来构建网页界面的 JavaScript 框架,它让你把页面拆成一个个「组件」(像乐高积木),组件内部的数据和页面自动绑在一起,数据变了页面自动更新。它既能小范围嵌入老页面,也能做大型单页应用(SPA)。(Vue.js)


二个直观比喻(帮助理解原理)

  1. 数据和视图之间有根“看不见的绳子”:你改数据,绳子会轻轻一拉,浏览器页面就跟着变。这个“绳子”就是 Vue 的响应式系统(reactivity)。(Vue.js)

  2. Vue3 的响应式像“包一层智能外衣(Proxy)”:Vue3 用 JavaScript 的 Proxy 把对象包起来,任何读写都会被拦截与追踪,所以新增属性或深层变化都能被检测到并触发视图更新(比旧方法更稳、更新更聪明)。(Vue.js)


三、原理(重点、通俗)

  1. 声明式渲染:你在模板写 {{ name }},不是直接改 DOM,而是改 name。Vue 负责把数据变化映射到 DOM。

  2. 响应式(reactivity):Vue 会把你的数据(对象、数组、基本类型)变成“可追踪”的,当数据变,依赖它的视图/计算属性会自动重新计算并更新 DOM。Vue 3 底层用 Proxy 实现更完善的追踪。(Vue.js)

  3. 组件化:界面拆成许多小组件(组件有自己的数据、模板、样式、方法),组件可以嵌套复用,像乐高积木一样组装页面。(Vue.js)

  4. 模板 + 指令:模板看起来像 HTML,加上一些指令(v-ifv-forv-modelv-on 等)来控制显示、循环、双向绑定、事件处理。

  5. 两套写法(API):Vue 有 Options API(传统,把 data/methods/computed 分门别类)和 Composition API(把逻辑按功能聚合在 setup(),更利于复用和 TypeScript)。大项目越来越倾向 Composition API。(Vue School)


四、Vue 能帮你做什么(作用)

  • 快速写交互式界面(表单、列表、仪表盘)。

  • 做单页应用(路由 + 状态管理 + 组件)。

  • 将旧页面逐步升级:可以只在页面的一小块用 Vue(progressive)。(Vue.js)


五、具体用法(最实用的入门示例)

1) 项目起步(简述)

现在常用工具:用 create-vue(或 Vite)创建模板,然后 npm installnpm run dev 开发。用这个脚手架可以马上开始写组件。(MDN 文档)


2) 最简单的“挂一个 Vue 应用”示例(Vue 3)

HTML:

<div id="app">{{ message }}</div>

JavaScript:

// main.js
import { createApp } from 'vue'createApp({data() {return { message: 'Hello Vue!' }}
}).mount('#app')

解释:data() 返回的对象会被 Vue 转成响应式,{{ message }} 会自动渲染并在 message 改变时更新页面。


3) Options API 的组件(适合初学者)

<!-- HelloWorld.vue -->
<template><div><h3>{{ title }}</h3><input v-model="name" placeholder="type name" /><p>Hi, {{ name }}</p><button @click="sayHello">Say</button></div>
</template><script>
export default {name: 'HelloWorld',props: { title: String },data() {return { name: '' }},methods: {sayHello() {alert('Hello ' + this.name)}}
}
</script>

要点:props 接受父组件传入的数据;v-model 做双向绑定;@click 绑定事件。


4) Composition API(更现代、便于复用&TypeScript)

<template><div><h3>{{ title }}</h3><input v-model="name" /><p>count: {{ count }} / doubled: {{ doubled }}</p><button @click="increment">+</button></div>
</template><script setup>
import { ref, computed } from 'vue'const props = defineProps({ title: String })const name = ref('')
const count = ref(0)
const doubled = computed(() => count.value * 2)
function increment() { count.value++ }
</script>

说明:ref() 用来包装基本类型(访问改值用 .value),computed() 创建计算属性,script setup 是更简洁的写法。


5) 常用指令 & 功能速查(小抄)

  • v-if="cond":条件渲染

  • v-for="(item, i) in list":循环渲染

  • v-model="value":表单双向绑定

  • v-on:click="fn" / @click="fn":事件

  • :prop="expr":绑定属性(缩写 :

  • computed:缓存计算值

  • watch:监听值变化作副作用(异步请求、日志)

  • 生命周期:created/mounted(Options)或 onMounted()(Composition)


六、响应式工作流程(再用比喻解释)

把数据对象想象成“智能玩偶”,在它身上装了探测器(依赖收集)——当组件读取某个字段时,Vue 记录“这个组件依赖这个字段”;当字段被改写时,探测器发出通知,只有依赖这个字段的组件会重新渲染。Vue3 的 Proxy 就像给玩偶穿上了全身智能衣,连新增的口袋(新增属性)也能被发现并响应。(Vue.js)


七、什么时候用 Options API / Composition API?

  • Options API:入门更友好,项目小、团队熟悉时很合适。

  • Composition API:逻辑复用、复杂组件、TypeScript 支持、较大项目更适合。社区和官方也在鼓励在新项目更多使用 Composition API。(Vue School)


八、常见注意点与坑(实用提醒)

  • Vue3 用 Proxy,解决了 Vue2 新增属性不响应的问题,但仍要注意深拷贝与引用类型导致的意外。(Vue.js)

  • refreactive 的选择:基本类型用 ref(),对象/数组用 reactive()(两者在细节和解引用上有区别)。

  • 大型状态管理用专门库(例如 Pinia / Vuex)能让跨组件状态更清晰(这里按需选)。

  • 模板里不要滥用复杂逻辑,复杂逻辑放入方法或计算属性,保持模板简洁。


九、快速上手路线(建议步骤)

  1. 按需学习 Options API 基本用法(data/methods/computed/props)。

  2. v-forv-ifv-model、事件绑定。

  3. 学 Composition API(setuprefreactivecomputedwatchonMounted)。

  4. create-vue 或 Vite 脚手架新建项目,实践组件拆分与复用。(MDN 文档)


十句总结(记心里)

  • Vue = 组件 + 响应式(数据变视图变) + 模板指令。(Vue.js)

  • Vue3 的响应式更强大,用 Proxy 实现(更少坑)。(Vue.js)

  • 小项目用 Options API,复杂逻辑或 TypeScript 推荐 Composition API。(Vue School)

http://www.dtcms.com/a/457811.html

相关文章:

  • 【开题答辩全过程】以 爱心慈善公益网站为例,包含答辩的问题和答案
  • 【云基础】容器管理工具Containerd
  • 大数据毕业设计-基于大数据的BOSS直聘岗位招聘数据可视化分析系统(高分计算机毕业设计选题·定制开发·真正大数据·机器学习毕业设计)
  • 网站开发建设培训网站策划书预期风险
  • aspnet网站模板人人秀h5页面制作软件
  • mysql数据库学习之高级进阶(七)
  • 做网站的书知乎建地方的网站前景
  • 数字化转型:概念性名词浅谈(第六十七讲)
  • Arduino开发ESP32连接手机热点【适合新手】
  • 网站搭建策划书网站备案流程审核单
  • 网站源码交易平台郑州阿里巴巴网站建设
  • 教育培训手机网站模板下载电脑端网站和手机网站区别
  • 集成热部署
  • 【代码随想录算法训练营——Day28】贪心算法——56.合并区间、738.单调递增的数字、968.监控二叉树
  • 河北建设执业资格注册中心网站响应式网站 软件
  • tuchuang_共享文件_图片_取消_删除
  • 基因组组装:1. Hifiasm 组装参考基因组
  • 网站制作设计专业公司网络营销个人总结
  • 力扣2779. 数组的最大美丽值
  • 深圳做分销网站北京搭建工厂
  • 甘肃省建设厅执业资格注册中心网站通知网站开发三个月能学会吗
  • 石家庄手机网站建设装饰装修网站大全
  • 鼎锋优配股票杠杆交易市场赣锋锂业涨超6%,创两年多新高
  • 网络服务投诉平台商丘seo快速排名
  • 自适应网站欣赏wordpress主题超限
  • TODO 分类任务指标计算和展示 准确率 F1 Recall
  • 网站分辨率做96是否会更好织梦做双语网站
  • 贪心:火烧赤壁
  • 公司网站建设的环境分析城乡建设厅官方网站办事大厅
  • 深度学习基础:从原理到实践——附录A:PyTorch 深度学习框架基础(下)