vue 3 基础
Vue原理
Vue中的MVVM模式是一种重要的软件架构模式,它极大地简化了前端开发中视图和数据的绑定以及数据同步的问题。以下是对Vue MVVM模式的详细解析: 一、MVVM模式的基本概念 MVVM是Model-View-ViewModel的缩写,它将应用程序分为三个核心部分: Model:代表数据源或者后端接口,是应用程序的数据和业务逻辑所在。 View:表示应用程序的用户界面,是用户交互的界面,包括HTML模板和DOM元素。 ViewModel:是View和Model之间的桥梁,负责处理业务逻辑和数据的双向绑定。在Vue中,ViewModel通常指的是Vue组件实例。 二、Vue中MVVM模式的实现 双向数据绑定: Vue通过v-model指令实现数据的双向绑定。例如,在输入框中使用v-model指令绑定数据,当用户在输入框中输入内容时,绑定的数据值会实时更新;
反之,如果通过JavaScript代码修改了数据值,输入框的内容也会随之改变。 Vue使用虚拟DOM来实现高效的视图更新。每次数据模型发生变化时,Vue会通过比较虚拟DOM和真实DOM的差异,然后只更新需要更新的部分,而不是直接重新渲染整个页面。 计算属性和监听器: 计算属性允许对数据进行一些运算或处理,然后返回计算结果。它们是基于它们的依赖进行缓存的响应式属性,只有当相关依赖发生改变时,它们才会重新求值。 监听器可以用来观察某个特定的值,并在其发生变化时执行相应的操作。这对于处理复杂的业务逻辑非常有用。 事件绑定: Vue使用v-on指令来实现事件的绑定。例如,可以将按钮的点击事件绑定到一个方法上,当用户点击按钮时,会触发该方法,根据业务逻辑执行相应的操作。 三、MVVM模式的优势 逻辑分离:通过将数据处理逻辑与视图分离,使代码更加易于维护和扩展。 高度可复用:ViewModel是与具体的View无关的,因此可以在不同的View中进行复用,提高了代码的重用性。 实时同步:实现了数据和界面的实时同步,当数据发生变化时,视图会立即更新;反之,用户的操作也可以立即反映到数据上。 提高开发效率:开发者无需手动操作DOM元素,只需关注数据和业务逻辑的处理,减少了手动操作DOM所需的代码量。 四、Vue中MVVM模式的应用示例 以下是一个简单的Vue应用示例,展示了MVVM模式的基本用法: html <div id="app"> <p>{{ message }}</p> <input v-model="message" /> <button v-on:click="reverseMessage">Reverse Message</button> </div> <script> new Vue({ el: '#app', data: { message: 'Hello Vue!' }, methods: { reverseMessage: function() { this.message = this.message.split('').reverse().join(''); } } }); </script> 在这个示例中: {{ message }}是视图部分,用来显示message的值。 v-model指令实现了输入框与message的双向绑定。 v-on:click指令将按钮的点击事件绑定到了reverseMessage方法上。 当用户输入内容时,message的值会实时更新并显示在视图中;当用户点击按钮时,会触发reverseMessage方法,将message的值反转并更新到视图中。 综上所述,Vue中的MVVM模式通过数据绑定、视图更新、计算属性、监听器和事件绑定等功能,实现了数据驱动的视图变化。它简化了前端开发中的视图和数据的绑定以及数据同步的问题,提高了代码的可维护性和可复用性,并显著提升了开发效率。
vue 3 中 选项模式
在Vue 3中,选项模式(Options API)是一种组件编写方式,它延续了Vue 2中的经典模式,通过预定义的选项如data、methods、computed等来组织代码。
每个选项负责组件的不同方面,使得代码结构清晰,易于理解和维护。以下是对Vue 3中选项模式的详细解析: 一、选项模式的结构 在Vue 3的选项模式中,一个组件通常由以下几个主要部分组成: template:定义了组件的HTML结构。 script:包含了组件的JavaScript逻辑。 data:一个函数,返回一个对象,该对象包含了组件的响应式数据。 methods:一个对象,包含了组件的方法。这些方法可以在模板中被调用,也可以用来处理事件等。 computed:一个对象,包含了组件的计算属性。计算属性是基于它们的依赖进行缓存的响应式属性。 watch:一个对象或函数,用来观察和响应Vue实例上数据的变化。 lifecycle hooks:生命周期钩子,如created、mounted、updated、destroyed等,它们在组件的不同生命周期阶段被调用。 二、选项模式的优点 易于理解和上手:对于新手来说,选项模式的结构更加直观,容易理解。每个选项都有明确的用途,使得代码更加清晰。 代码组织结构清晰:不同的选项负责不同的功能,使得代码结构清晰,易于阅读和维护。 兼容性:对于从Vue 2迁移到Vue 3的项目,可以更方便地逐步迁移,因为选项模式在Vue 2和Vue 3中都是支持的。 三、选项模式的缺点 逻辑分散:同一个功能逻辑可能会分散在不同的选项中,导致代码分散,不易维护。例如,一个数据相关的逻辑可能需要在data中定义数据,
在methods中定义方法,在computed中定义计算属性等。 代码冗余:对于有多个组件共享相同逻辑的情况,需要重复编写相同的代码,导致代码冗余。这可以通过混合(mixins)或插件来部分解决,但仍然不够灵活。 类型支持不友好:对于TypeScript用户来说,选项模式的类型支持不如组合式API(Composition API)友好。组合式API提供了更好的类型推断和类型安全。 四、选项模式的使用示例 以下是一个简单的Vue 3组件示例,展示了选项模式的基本用法: html <template> <div> <button @click="increment">Increment</button> <p>Count: {{ count }}</p> </div> </template> <script> export default { data() { return { count: 0 }; }, methods: { increment() { this.count++; } } }; </script> 在这个示例中: template部分定义了组件的HTML结构,包括一个按钮和一个段落。 script部分包含了组件的JavaScript逻辑。在data函数中,我们定义了一个名为count的响应式数据。在methods对象中,
我们定义了一个名为increment的方法,用于增加count的值。 当用户点击按钮时,increment方法会被调用,count的值会增加,并且插值表达式{{ count }}会自动更新为新的值。 综上所述,Vue 3中的选项模式是一种简单直观的组件编写方式,它适合初学者和需要快速上手Vue开发的开发者。
然而,对于复杂的应用和需要更高代码复用性和可维护性的场景,组合式API可能是一个更好的选择。

声明式渲染 不用关心底层逻辑是什么样的


底层是用 ES6 proxy 监听


{{ handClick}} $event 获取 事件对象

计算属性 与方法不同点 调用方式 直接些 属性名称 方法 需要使用小括号
计算属性 具有缓存功能 当 依赖 this.message 没有发生改变 就读取缓存
计算属性 是只读 的 注意这里是 方法


计算属性默认 是只读 的只有 get 方法 不能修改 但是可以添加 set 方法实现修改
注意这里是 对象 {} 而不是 方法


计算属性 不支持异步 因为 异步还没执行完 就已经 return了
监听器 没有return 所以 可以支持异步操作

列表渲染 v-for value key index




使用 template 不会产生多于的标签 下面 就渲染成 两个div



:class 对象方式 {box1,true} 设置布尔方式显示样式
:style 对象方式{background:'blue'}

生命周期函数 其实是回调函数
created 响应数据准备好后 触发 可以做发起Ajax
mounted dom 元素加载后 触发 可以做发起Ajax
beforeupdate 更新dom 前触发
updated 更新dom 后触发 可以拿到更新后的数据






全局组件








父子组件双向数据流动































浙公网安备 33010602011771号