Vue.js

作者: 饥人谷_Leonardo | 来源:发表于2018-10-11 10:43 被阅读8次

MVVM模式

(视图层和数据层的双向绑定,让我们无需再去关心DOM操作的事情,更过的精力放在数据和业务逻辑上去)

  • MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。

Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;
View 代表UI 组件,它负责将数据模型转化成UI 展现出来,
ViewModel 是一个同步View 和 Model的对象。

  • 在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的,因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。
  • ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

Vue.js优点 - 面向数据编程

  • 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
  • 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
  • 独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。
  • 可测试。界面素来是比较难于测试的,而现在测试可以针对ViewModel来写易用灵活高效

环境搭建,入口

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17-beta.0/vue.min.js"></script>

实例挂载

var app = new Vue({
    el:'#id',   //实例挂载DOM中
    data:{      //双向绑定数据
        msg:2
    }           
})

挂载点 实例指定的节点为挂载点

访问Vue实例属性

app.$el     
app.$date

访问date元素的属性(直接访问date数据)

app.msg

生命周期(钩子)

created:()=>{alert('创建完成,还未挂载')},
mounted:()=>{alert('已经挂载马上渲染')}

文本插值 {{msg}} v-text/v-html

Vue .js 只支持单行表达式,不支持语句和流控制

{{ 6+6 *3}}                 可以进行简单的运算
{{ 6<3 ? msg :a}}           可以用三元运算符
{{if(6>3){}}                注意:文本插值的形式,其中不能书写表达式,支持单个表达式
{{var a = 6}}               也是多行表达式----var a ;a = 6;

过滤器 - filters对象

Vue. 支持在{{}}插值的尾部添加一小管道符 “ | ” 对数据进行过滤,
经常用于格式化文本,比如字母全部大写、货币千位使用逗号分隔等。
过滤的规则是自定义的, 通过给 Vue 实例添加选项 filters 来设置
过滤器:{{ data | filter1 |filter2}}
{{date | formatDate(66,99)}} 中的第一个和第二个参数,分别对应过滤器的第二个和第三个参数

  • v-text 解析文本字符串,转译
  • v-html 解析html文本
  • v-bind 绑定活的属性,动态更新HTML元素上的属性,比如 id 、class 等,
  • v-model 双向绑定
  • v-on 绑定事件监听
    vue实例中用 到的所有方法都定义在methods中

语法糖 //点击同时改变

语法糖是指在不影响功能的情况下 , 添加某种简洁方法实现同样的效果 , 从而更加方便程序开发。
v-bind ——> : (冒号)
v-on ——> @

计算属性 - computed对象

所有的计算属性都以函数的形式写在 Vue 实例内的computed 选项内,最终返回计算后的结果。
只要其中任一数据变化,计算属性就会重新执行,视图也会更新
computed对象有get和set方法,如果直接跟function,使用getter函数
计算属性可以依赖其他计算属性。
计算属性不仅可以依赖当前 Vue 实例的数据,还可以依赖其他实例的数据

计算属性缓存 依赖属性变化才会重新计算

调用 methods 里的方法也可以与计算属性起到同样的作用
页面中的方法: 如果是调用方法,只要页面重新渲染。方法就会重新执行,不需要渲染,则不需要重新执行
计算属性:不管渲染不渲染,只要计算属性依赖的数据未发生变化,就永远不变

结论: 没有使用计算属性,在 methods 里定义了一个方法实现了相同的效果,甚至该方法还可以接受
参数,使用起来更灵活。既然使用 methods 就可以实现,那么为什么还需要计算属性呢?原因就是
计算属性是基于它的依赖缓存的。 一个计算属性所依赖的数据发生变化时,它才会重新取值,所以text 只要不改变,计算属性也
就不更新
何时使用:使用计算属性还是 methods 取决于你是否需要缓存,当遍历大数组和做大量计算时,应当使用计算属性。

v­-bind

动态更新HTML元素上的属性,比如 id 、class 等,数据变化时页面绑定就会变化。

绑定class

v­bind:class 设置一个对象,可以动态地切换 class
:class="{divstyle:isActive} (isActive值对应true ,false)
当 class 的表达式过长或逻辑复杂时,还可以绑定一个计算属性

绑定style

vue中只要是大写字母,就会转化为-加小写。(A -a)
注意 : css属性名称使用驼峰命名(came!Case) 或短横分隔命名(kebab­case)

:style{'color':color,'font-size':fontSize+'px'}

监听器 - watch

监听数据发送变化,进行函数逻辑

相关文章

  • Vue.js动态组件解析

    此前的Vue.js系列文章: Vue.js开发常见问题解析 Vue.js常用开发知识简要入门(一) Vue.js常...

  • 【MAC 上学习 Vue】Day 1. 创建 Hello Wor

    下载 Vue.js Vue.js 开发版本下载地址为:https://vuejs.org/js/vue.js 安装...

  • Vue 循环、点击、双向绑定

    一、了解 Vue.js 1 Vue.js是什么? Vue.js是一套用于构建用户界面的渐进式框架。Vue.js通过...

  • Vue.js入门

    Vue笔记系列2、Vue.js渐进3、Vue.js进阶 Vue.js的概述 如官网所说,Vue.js是一款轻量级的...

  • Vue起步

    Vue.js官网 Vue.js教程 1. Vue.js起步 Vue.js有两种方式:引入CDN方式或使用命令行工具...

  • MAC上学习Vue---Day1. 创建Hello World

    下载Vue.js Vue.js开发版本地址为: https://vuejs.org/js/vue.js 安装VS ...

  • 一.Vue.js起步

    1 Vue.js Vue.js官网 Vue.js菜鸟教程 2 MVVM模式 MVC:Model-Viel-Cont...

  • Vue.js 第一天

    Vue.js 一、Vue.js简介 1.Vue.js 是什么 vue.js 也称为Vue,读音 /vju:/ ,类...

  • 《Vue.js 实战》基础篇(上)

    本章内容:认识 Vue.js、数据绑定、计算属性、内置指令 一、初始 Vue.js 1.1 Vue.js 是什么 ...

  • Vue.js基础

    1 vue.js研究 1.1 vue.js介绍 1、vue.js是什么?Vue (读音 /vjuː/,类似于 vi...

网友评论

      本文标题:Vue.js

      本文链接:https://www.haomeiwen.com/subject/ehixaftx.html