三、vue实例的4个常用选项

Vue实例的参数有el(指定挂载的DOM元素),data(实例的数据),还可以定义其他参数;
vue实例会用到的4个常用参数选项:

一、filters 过滤器

eg:假设我们有一组数字,都是小数;

let vm=new Vue({
    //挂载元素
    el:"#app",
    //实例vm的数据
    data:{
        num1:33.245,
        num2:56.256,
        num3:98.236
    }
});

num1,num2,num3都是Vue实例vm的小数,展示在视图上:

<div id="app">
    数字1:{{num1}}<br>
    数字2:{{num2}}<br>
    数字3:{{num3}}
</div>

双大括号{{ }}渲染出来:


渲染成功
需求改了,不能把小数展示出来,需要把小数转换成整数再显示。需要用到Vue的filters过滤器;
new Vue({
    //挂载元素
    el:"#app",
    //实例vm的数据
    data:{
        num1:33.245,
        num2:56.256,
        num3:98.236
   },
   //过滤器
   filters:{
       //toInt(value){
            //return parseInt(value);
       //}
       toInt:function(value){
            return parseInt(value);
        }
    }
})

释:参数对象除了el和data属性之外,还多了一个filters属性,它的值也是一个对象,里面定义了一个叫toInt( )的方法,传入了一个value的参数,函数的作用就是把传入的参数value,简单地转成一个整出并return回去。

定义完filters属性后,如何用?

释:通过管道符 | 把函数toInt 放在变量后面即可,num1,num2,num3会分别作为参数value传入toInt( value )方法进行运算,并返回一个整数。

<div id="app">
    数字1:{{num1 | toInt}}<br>
    数字2:{{num2 | toInt}}<br>
    数字3:{{num3 | toInt}}<br>
</div>

此时,渲染出来的页面:


把小数换成整数渲染成功

二、computed 计算属性

拿到一些数据,需要经过处理计算后得到的结果,才是要展示的内容。
eg:有三个数,但是需要展示的是三个数字之和。这种情况,就适合用我们的计算属性computed。

new Vue({
  //挂载元素
  el:"#app",
  //实例vm的数据
  data:{
    num1:1,
    num2:3,
    num3:10
  },
  //计算属性
  computed:{
    sum:function(){
      return this.num1+this.num2+this.num3
    }
  }
})

计算属性computed的定义语法和过滤器filters类似,但是用法不一,如下:

<div id="app">
    综合:{{sum}}
</div>

三、methods 方法

在methods中,我们可以定义一些方法,供组件使用;
eg:定义一个数据a,当用户点击加1按钮的时候,a的值加1。这种情况,我们可以利用methods来实现;

new Vue({
   //挂载元素
   el:"#app",
   //实例vm的数据
   data:{
       a:0
    },
   //方法
   methods:{
       plus:function(){
           return this.a++;
       },
       minues:function(){
           return this.a-=2;
        },
    }
})
定义一个plus( )、minues()的方法在methods中,然后把plus( )、minues() 绑定在按钮的点击事件上:
div id="app">
    <button v-on:click="minues">减2</button>
    {{a}}
    <button v-on:click="plus">加1</button>
</div>
点击加1按钮成功渲染

四、watch 观察

watch选项是Vue提供的用于检测指定的数据发生改变的api。
释:点击按钮a的值加1的例子,数据也发生了变化;用watch选项来监听数字a是否发生了变化,如果了监听到了变化,在控制台输入以下a的最新值。

new Vue({
    //挂在元素
    el:"#app",
    //实例vm的数据
    data:{
        a:0
     },
     //方法
     methods:{
         plus:function(){
            return this.a++;
         }
     },
     //观察
     watch:{
         a:function(){
            console.log('有变化了,最新值:');
            console.log(this.a);
         }
     }
})

释:最后一部分watch就是新加的代码,a( ) 表示要观察监听的就是数据a,看运行结果:


监听过程
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 10,463评论 0 29
  • 下载安装搭建环境 可以选npm安装,或者简单下载一个开发版的vue.js文件 浏览器打开加载有vue的文档时,控制...
    冥冥2017阅读 11,262评论 0 42
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,408评论 19 139
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 6,657评论 0 6
  • 2017.3.24 晨起感恩 累计77 感恩大恩上师及诸佛菩萨的护佑和加持 感恩历代宗亲的传承 感恩老妈生养我...
    鹊曾阅读 1,222评论 0 3