在开发中,我们经常需要用到函数, 通过将一些需要复用的逻辑封装在函数里,多次调用这个函数来达到逻辑代码复用的目的.

在vue中,函数被定义成为方法来使用,这些方法定义在methods属性中,然后就可以在vue 表达式中调用函数

1. 定义方法

vue 选项对象中有一个叫methods的属性.这个属性里面专门来存放一些函数,用来给别人调用

const vm = new Vue({    el: "#app",    data: {        status: 2    },    methods: {        // 这里面是用来存放函数,这里面的函数会自动成为vue实例的方法        statusDoing(id){            var doing = ["睡觉","吃饭","学习Vue"];            return doing[id]        }    }})

2. 方法的调用

之前有起到过Mastache语法中可以使用JavaScript表达式,所以我们可以在Mastache语法中调用函数

<div id="app">    {{ statusDoing(status) }}</div>

方法除了可以在Mastache 表达式中使用外,还可以在任何可以使用Javascript表达式中都可以使用,我们慢慢了解

3. 方法中的this指向

在方法中,this指向该方法所属的实例,可以使用this访问data中的属性或者其他方法

<div id="app">    {{ statusDoing() }}</div><script>       const vm = new Vue({        el: "#app",        data: {            status: 2        },        methods: {            statusDoing(){                var doing = ["睡觉","吃饭","学习Vue"]                                // 通过this 获取到实例对象,来拿到data中的数据                return doing[this.status]            }        }    })</script>

注意, 方法不能使用箭头函数,因为箭头函数的this不是Vue实例, 未来我们在方法中可能会大量使用到Vue实例对象中的属性. 比如获取数据,或者调用其他方法, 如果我们使用了箭头函数就会丢失this,只能通过Vue实例对象来获取

详细的部分我们会在事件中提及;

4. 关于方法响应式

使用方法对数据进行过滤

<div id="app">    <!-- 原数组 -->    <h2>原数组</h2>    {{numbers}}    <h2>使用方法过滤后的数组</h2>    {{ filterNum() }}</div><script>       const vm = new Vue({        el: "#app",        data: {            numbers: [10,20,-12,15,-10,22]        },        methods: {            filterNum(){                // 过滤数组函数                return this.numbers.filter((number) => {                       return number >= 15                })                  }        }    })</script>

这个时候改变numbers数据,

vm.numbers = [22,11,13,19,18,10,17]

就会发现, 方法过滤后的数据也发生了变化

所以我们前面讲data属性时提到的数据响应式变化,在方法里同样有效果, 数据变化触发了Vue响应系统, 进而触发函数重新执行.

Vue选项: Methods方法相关推荐

  1. Vue入门 methods方法

    methods方法:为什么加s,因为可以定义多个方法 methods选项表示:当前Vue实例可以用到的方法 methods选项的值:对象,对象中定义方法 methods{ //定义时间处理方法show ...

  2. 在vue开发中会遇到methods方法里有一个函数嵌套另一个函数,最内层函数this取不到data数据,该怎么解决?

    一,问题 在vue的methods方法中两个函数互相嵌套,最内层函数this取不到data数据 二,原因 this的指向问题 三,解决方法 (1)给最外层函数this重新赋值给一个变量 methods ...

  3. 在vue中methods互相调用的方法

    在vue中methods互相调用的方法 转载于:https://www.cnblogs.com/macT/p/10212878.html

  4. vue中的方法 methods 定义时不要使用箭头函数

    今天在vue中引入vuex的时候出现了错误,解决了一个多少时,总结如下: vuex 的使用: vuex就是一个状态管里中心 也好比一个仓库 细分可分为五个部分,这是我不考虑 module 分别是 st ...

  5. 解决vue中无法取得methods方法中的return值

    解决vue中无法取得methods方法中的return值 参考文章: (1)解决vue中无法取得methods方法中的return值 (2)https://www.cnblogs.com/betty- ...

  6. Vue中的methods方法

    在 methods 中定义方法 我们可以使用 methods 属性给 Vue 定义方法,methods 的基本语法: var vm = new Vue({methods:{// 在此时定义方法,方法之 ...

  7. Vue中的methods方法使用技巧,三分钟迅速读懂

    1.methods方法应用场景: 在Vue中,我们需要调用某个方法时,我们需要先将这些方法定义在methods属性中,然后才能在vue 表达式中调用该方法. 2.methods方法的使用方法 语法定义 ...

  8. vue的methods中方法写法

    vue的methods中存放方法,写法有aaa(){ }和bbb:function(){ } methods:{ // key:value key是方法名,value是function aaa(){ ...

  9. Vue获取methods中方法的return返回值

    Vue获取methods中方法的return返回值 1. 遇到的需求 需要调用methods中的一个方法直接使用return返回值: 但直接使用return关键字是undefined,无法直接拿到返回 ...

最新文章

  1. python输出日期的模版_python按日期区间生成markdown日记模板
  2. 相机矫正_实战 | 我用位姿解算实现单目相机测距
  3. 对话:在敏捷中,是否可以仍然用需求来替代用户故事?
  4. Linux之提高Nginx的安全性:受限server_tokens /user_agents/buffer_size/连接数/请求方法/外链/不用模块 使用日志/TLS/HTTPS/升级
  5. Linux基础命令---mpstat显示CPU使用情况
  6. sqlite3 加密版本 下载_制作Sqlcipher+SM4加密的framework包(OC)
  7. 第一讲 地理信息系统概述
  8. oracle12c安全补丁包,Oracle 12c 及以上版本补丁更新说明及下载方法
  9. 华为p40pro手机计算机在哪里,一文看懂华为P40/P40 Pro差别在哪
  10. 程序员必知的编程5祖师爷,不要说你不知道!
  11. “盘古”走向产业山峦,打开了一串AI落地的新脑洞
  12. 电子商务系统的设计与实现:数据库设计
  13. 敏捷开发之道 总结小记
  14. MarkDown中输入数学公式
  15. Python中的tuple
  16. 【matlab选题推荐四】基于图像识别的人脸考勤系统
  17. Browsersync:省时的浏览器同步测试工具
  18. 我的世界java版探测矿石_《我的世界》六个关于矿石的隐蔽知识,在峡谷中的矿脉最难挖掘?...
  19. ArcGIS教程 - 附录:城市规划制图图例(AutoCAD2016)
  20. C# PDF操作之-PDF转TXT

热门文章

  1. ME4012磁盘服务器更换硬盘
  2. CreateFile 函数
  3. CloudComparePCL 移动最小二乘法(MLS)
  4. 吴忠军 - 龙骑伙伴 蓝猫龙骑团主题曲动漫动画片
  5. android的UI组件实验,实验一 Android Activity及UI设计.doc
  6. 英语十大词性之五 - 名词
  7. Spring Profiles的几个小知识
  8. 细说SQL Server中的加密
  9. 8-130 万能计算器(支持各类数据的加法函数)
  10. Python ————练习(以特殊方式跟管理员打招呼 及 处理没有用户的情形)