Vue-1.0

作者: Jianshu9527 | 来源:发表于2017-03-21 23:31 被阅读39次

发布时间:2014年2月开源的一个前端开发库

1 官网介绍
1 是一套构建用户界面的渐进式框架
2 采用自底向上增量开发的设计
3 Vue只关注视图层,使其容易和其他的第三方库或者项目整合
4 当单文件组件和Vue生态系统支持的库结合使用时,能给为复杂的单页面程序提供驱动
2 版本下载

http://v1-cn.vuejs.org/guide/installation.html
(提供了开发版本和生产版本)

3 基本指令起步

3.1 构造器

  • 每一个Vue.js都是通过构造函数Vue创建一个Vue的实例来进行启动
var vm = new Vue({//变量名vm 表示Vue实例
        //代码    
})

3.2 属性与方法

  • Vue实例会代理data对象里面的所有属性
var  data = { a : 1}
var vm = new Vue({
     data:data
})
vm.a == data.a    //=>true
vm.a = 2 //修改属性也会影响到原始的数据
data.a    // a=>2
data.a = 3    //同理
vm.a     //a=>3

小结:代理的属性是响应的,在实例创建之后添加新的属性到实例上,是不会触发视图更新

3.3 常见指令
指定(directive)是带有v- 前缀的的特殊属性,指令的作用就是当其表达式的值改变时相应的将某些行为应用到DOM上

1 数据绑定指令

  • v-model
    双向数据绑定,只能在表单元素中使用,修改当前的数据则会影响相对应的数据值(使用v-model必须要赋初始值)
  • v-text
    可以直接渲染data里面的数据,只能输出文本,不能输出元素标签
  • v-html
    可以直接输出html字符串和文本内容

2 指令接受参数(接受一个参数,用冒号来指明即可)

  • v-bind:src
  • v-bind:class
  • v-bind:href
  • v-bind:id
  • v-html:

3 条件指令(作为一个自定义的属性来使用)

  • v-if(背景图的颜色改变)//控制多个兄弟元素 可以使用template元素
  • v-else
  • v-else-if(2.0新增)
  • v-show

4 循环指令

v-for(value in array)//数组遍历
v-for((val,index) in array)//获取每个索引值,从零开始

v-for(val in obj)//对象遍历
v-for((val,key) in obj)//获取键和值

<template v-for="(val ,key) in obj">
    <h2>{{val}}</h2>
    <p>{{key}}</p>
</template>
  • v-for(val in 10)//整数循环 ,从零开始

5 计算属性(声明式的描述一个值依赖了其他的值)

  • data:数据存放
  • methods:方法和事件的操作
<h2>{{getAge(birthday)}}</h2>
data:{
   birthday:"1996-10-21"
}
//计算年龄
methods:{
    getAge:function(birthday){
      var d1 = new Date(birthday);  
      var d2 = new Date();
      return d2.getFullYear() - d1.getFullYear();//
    }
}
//计算属性方法
<h2>{{age}}</h2>
computed:{
    age:function(){
      var d1 = new Date(this.birthday);//this 代表当前
      var d2 = new Date();
      return d2.getFullYear() - d1.getFullYear(); 
    }
  }
//理解:就是属性加方法的合体

1 计算属性的两大特征

  • 缓存性能(和调用methods函数之间的区别)
    使用计算属性的时候,依赖的值如果没有发生变化的时候(相互有依赖的关系),则当前的计算属性就会使用缓存,不会重新执代码(如果是普通方法,则会重新执行代码)
  • get特征
//方法中设置和修改
age:{
  get : function(){
    return new Date().getFullYear() - this.birthday
  },
  set:function(val){//birthday
    this.birthday = new Date().getFulYeatr() - val;
  }
}

6 过滤器
对数据的进行不同的处理,在不同需求下,对数据,文本进行不同的格式化

  • 使用格式{{变量 | 过滤器名称*(参数1,参数2,参数3)}} //版本1之后都放弃了过滤器

7 事件

1 点击事件

  • v-on:click="方法名()";
  • 简写 @click="方法名"

2 操作DOM

  • v-on:click = "方法名($event)"//获取当前的元素
    3 停止冒泡
  • v-on:click.stop = "方法名"//阻止事件进行冒泡
    事件注意事项
  • 绑定事件没有on ,
  • 事件名称都是小写

8 表单处理

  • 数据双向绑定
  • 模型的变化 ---> 视图的更新
  • 视图的变换 ---> 模型的更新
  • 指令 v-model(只能应用表单输入框中)

9 修饰符

10 样式操作(class和style)

  • 是对元素的属性操作(v-bind:)
  • 通过表达式的值来增添元素类
  • 表达式的结果类型除了字符串,还支持对对象和数组的操作

1 对象语法

//案例一
isActive:为true的时候,添加active类
<div v-bind:class='{active:isActive}'>Test</div>
//案例二
isActive的值大于2的时候,添加active类
<div v-bind:class='{active:isActive>2}'>Test</div>
//案例三
多个条件同时判断,满足则添加相对应的类,多个类用逗号进行分隔
<div v-bind:class='{activea:isActive,activeb:isActive==10}'>Test</div>

案例四:通过计算属性来绑定样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>对象语法</title>
    <!-- js -->
    <script type="text/javascript" src="jquery-3.1.1.min.js"></script>
    <script type="text/javascript" src="vue.min.js"></script>
    <!-- js -->
    <script type="text/javascript">
        $(function(){
            var vm = new Vue({
                el:".body",
                data:{
                    isActive: true,
                    hasError: false
                },
                computed:{
                    classObject:function(){
                        return {
                            active: this.isActive && !this.error,
                            'text-danger': this.error && this.error.type === 'fatal',
                        }
                    }
                }
            })
        })
    </script>
</head>
<body>
    <div class="body">
        <div v-bind:class="classObject"></div>
    </div>
</body>
</html>

*methods只是提供数据逻辑,而不是DOM的细节处理

相关文章

网友评论

      本文标题:Vue-1.0

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