声明式的、组件化的编程模型???? Vue 使用一种基于 HTML 的模板语法??? 构建步骤?? 自动移除 (也叫“tree-shaking”)??? DOM 模板???
Vue 的两个核心功能: 声明式渲染:Vue 基于标准 HTML 拓展了一套模板语法,使得我们可以声明式地描述最终输出的 HTML 和 JavaScript 状态之间的关系。 响应性:Vue 会自动跟踪 JavaScript 状态并在其发生变化时响应式地更新 DOM。
Vue 的单文件组件(SFC Single-File Components)会将一个组件的逻辑 (JavaScript),模板 (HTML) 和样式 (CSS) 封装在同一个文件里
选项式 API 以“组件实例”的概念为中心 (即上述例子中的 this),对于有面向对象语言背景的用户来说,这通常与基于类的心智模型更为一致。 同时,它将响应性相关的细节抽象出来,并强制按照选项来组织代码,从而对初学者而言更为友好。
组合式 API 的核心思想是直接在函数作用域内定义响应式状态变量,并将从多个函数中得到的状态组合起来处理复杂问题。 这种形式更加自由,也需要你对 Vue 的响应式系统有更深的理解才能高效使用。相应的,它的灵活性也使得组织和重用逻辑的模式变得更加强大。
如果直接在浏览器中打开了上面的 index.html,你会发现它抛出了一个错误,因为 ES 模块不能通过 file:// 协议工作。 为了使其工作,你需要使用本地 HTTP 服务器通过 http:// 协议提供 index.html。要启动一个本地的 HTTP 服务器,请先安装 Node.js, 然后通过命令行在 HTML 文件所在文件夹下运行 npx serve。你也可以使用其他任何可以基于正确的 MIME 类型服务静态文件的 HTTP 服务器。
应用实例必须在调用了 .mount() 方法后才会渲染出来。.mount() 方法应该始终在整个应用配置和资源注册完成后被调用。
响应式地绑定一个 attribute,应该使用 v-bind 指令:
因为 v-bind 非常常用,我们提供了特定的简写语法: v-on 指令,它将监听 DOM 事件: ...<a @click="doSomething"> ...
副作用:比如改变数据或触发异步操作。 计算属性的 getter 应只做计算而没有任何其他的副作用,这一点非常重要,请务必牢记。
指令是带有 v- 前缀的特殊 attribute。Vue 提供了许多内置指令,包括上面我们所介绍的 v-bind 和 v-html。
reactive() 的种种限制归根结底是因为 JavaScript 没有可以作用于所有值类型的 “引用” 机制。????? ref 对象????? 组件的 $attrs 属性???? for of与for in
当它们同时存在于一个节点上时,v-if 比 v-for 的优先级更高。这意味着 v-if 的条件将无法访问到 v-for 作用域内定义的变量别名:
import.meta.glob(./zh_CN/*.ts, { eager: true })???
component标签