原生 JS:数据和视图「分离」,必须手动同步原生 JS 里,数据是数据,视图是视图,两者完全没关系

一、原生 JS:数据和视图「分离」,必须手动同步

原生 JS 里,数据是数据,视图是视图,两者完全没关系

  • 你有一个变量 count = 100(数据)
  • 页面上有一个 <span> 显示 100(视图)
  • 当你点击按钮修改 count 时,必须手动写代码把新的 count 赋值给 <span> 的内容,否则页面永远不会变。

计数器:

复制代码
// 原生JS必须手动做两件事:改数据 + 改视图
addBtn.addEventListener('click', function() {
  count++; // 1. 改数据
  countSpan.textContent = count; // 2. 手动把数据同步到视图(缺一不可!)
});

痛点:项目越大,DOM 操作越多,很容易漏写、写错,导致数据和视图不一致,维护成本爆炸。


二、Vue:数据和视图「双向绑定」,自动同步

Vue 做了一件事:把数据和视图「连接」起来,建立了响应式关系

  • 你把 count 写在 data 里,Vue 会自动给它加上「响应式监听」
  • 页面上的 {``{count}} 会自动「订阅」这个数据的变化
  • 当你修改 count 时,Vue 会自动检测到变化,立刻更新对应的视图,你完全不用写任何 DOM 操作代码。

例子:

复制代码
<!-- 视图:{{count}} 自动绑定data里的count -->
<span>{{count}}</span>
<button @click="count++">+</button>

data: {
  count: 100 // 数据:Vue自动监听它的变化
}

优势:关心「改数据」,Vue 自动帮你「更视图」,彻底解放了 DOM 操作,代码量少、逻辑清晰、不会出错。


三、一句话总结(背下来就是核心)

  • 原生 JS:数据改了,视图不会自己变,必须手动写代码把数据「写」进视图里。
  • Vue:数据改了,视图自动跟着变,因为 Vue 在数据和视图之间搭了一座「自动同步的桥」。

补充:Vue 的「双向绑定」到底是什么?

理解成:

  • data 里的数据是「源」,页面上的视图是「镜像」
  • 源变了,镜像自动变(数据驱动视图)
  • (如果是表单输入)镜像变了,源也自动变(视图驱动数据,比如 v-model

这就是 Vue 能成为前端主流框架的核心原因之一,彻底解决了原生 JS 手动操作 DOM 的痛点。

vue常用的v-bind绑定用:省略并且img的src加上:可以比绑定data的数据url集合等

vue常用的v-show正常用="true/false"

vie常用的v-on绑定事件省略用@并且可以直接click="函数名(参数)"

v-if -else常用时候加="参数true/false"

相关推荐
云浪6 分钟前
前端二进制数组完全指南:ArrayBuffer、TypedArray、DataView 一次讲透
前端·javascript
张风捷特烈8 分钟前
Flutter 类库大揭秘#02 | path_provider 各平台实现
前端·flutter
铁皮饭盒1 小时前
26年bunjs, elysia+pg一把梭, redis都省了
前端·javascript·后端
lichenyang45314 小时前
Docker 学习笔记(一):为什么需要镜像、容器和仓库?
前端
kyriewen14 小时前
别再对着 TypeScript 报错发呆了:我把 10 个最常见的红色波浪线翻译成了人话
前端·javascript·typescript
IT_陈寒14 小时前
SpringBoot自动配置的坑,我的API突然就404了
前端·人工智能·后端
free3515 小时前
从 0 实现一个 Tiny JavaScript VM:项目架构拆解
javascript
暴走的小呆15 小时前
Vue 2 中 Object 的变化侦测:从 getter/setter 到 Dep、Watcher、Observer
vue.js
奇奇怪怪的15 小时前
Embedding 模型 10+ 横向评测
前端