vue computed和methods 计算属性和侦听器
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>vue</title>
- </head>
- <body>
- <div id="example">
- <p>Original message: "{{ message }}"</p>
- <p>Computed reversed message: "{{ reversedMessage }}"</p>
- <p>Reversed message: "{{ reversedMessage2() }}"</p>
- </div>
- <!-- 开发环境版本,包含了用帮助的命令行警告 -->
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
- <script type="text/javascript">
- var vm = new Vue({
- el: '#example',
- data: {
- message: 'Hello'
- },
- computed: {
- // 计算属性的 getter,有缓存
- reversedMessage: function () {
- // `this` 指向 vm 实例
- return this.message.split('').reverse().join('')
- }
- },
- // 在组件中,方法无缓存
- methods: {
- reversedMessage2: function () {
- return this.message.split('').reverse().join('')
- }
- }
- })
- </script>
- </body>
- </html>
我们可以将同一函数定义为一个方法而不是一个计算属性。两种方式的最终结果确实是完全相同的。然而,不同的是计算属性是基于它们的依赖进行缓存的。
如果你不希望有缓存,请用方法来替代。
计算属性
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>computed,methods,watch</title>
- <div id="app">
- {{fullName}}
- {{age}}
- </div>
- </head>
- <body>
- <!-- 开发环境版本,包含了用帮助的命令行警告 -->
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
- <script type="text/javascript">
- var app = new Vue({
- el: '#app',
- data: {
- firstName: 'Dell',
- lastName: 'Lee',
- age: 28
- },
- computed: {
- fullName: function() {
- console.log('计算了一次');
- return this.firstName + ' ' + this.lastName;
- }
- }
- })
- </script>
- </body>
- </html>
方法
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>computed,methods,watch</title>
- <div id="app">
- {{fullName()}}
- {{age}}
- </div>
- </head>
- <body>
- <!-- 开发环境版本,包含了用帮助的命令行警告 -->
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
- <script type="text/javascript">
- var app = new Vue({
- el: '#app',
- data: {
- firstName: 'Dell',
- lastName: 'Lee',
- age: 28
- },
- methods: {
- fullName: function() {
- console.log('计算了一次');
- return this.firstName + ' ' + this.lastName;
- }
- }
- })
- </script>
- </body>
- </html>
watch 侦听器
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>vue</title>
- </head>
- <body>
- <div id="app">
- <div>
- {{fullName}}
- {{age}}
- </div>
- </div>
- <!-- 开发环境版本,包含了用帮助的命令行警告 -->
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
- <script>
- var app = new Vue({
- el: '#app',
- data: {
- firstName: 'Tom',
- lastName: 'Lee',
- fullName: 'Tom Lee',
- age: '33'
- },
- watch: {
- firstName: function(){
- console.log('计算了一次');
- return this.fullName = this.firstName + ' ' + this.lastName;
- },
- lastName: function(){
- console.log('计算了一次');
- return this.fullName = this.firstName + ' ' + this.lastName;
- }
- }
- })
- </script>
- </body>
- </html>
computed性能最好
vue computed和methods 计算属性和侦听器的更多相关文章
- vue入门:(计算属性和侦听器)
methods watch computed 一.methods-方法 在数据渲染是需要基于多个数据时第一种方法,可以采用methods属性中的方法计算返回值来实现,先来看示例: <div id ...
- Vue学习笔记之计算属性和侦听器
0x00 计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div> {{ message.split(''). ...
- vue 自学笔记(三) 计算属性与侦听器
一:计算属性 虽然在模板内使用表达式对属性进行处理十分便利,例如在小胡子语法里写number + 1实现对数据的简单处理,但若我们在其中加入大量的代码,使得逻辑变重,导致难以维护.例如下面的代码,并不 ...
- 【Vue】Vue框架常用知识点 Vue的模板语法、计算属性与侦听器、条件渲染、列表渲染、Class与Style绑定介绍与基本的用法
Vue框架常用知识点 文章目录 Vue框架常用知识点 知识点解释 第一个vue应用 模板语法 计算属性与侦听器 条件渲染.列表渲染.Class与Style绑定 知识点解释 vue框架知识体系 [1]基 ...
- Vue.js之Vue计算属性、侦听器、样式绑定
前言 上一篇介绍了Vue的基本概念,这一篇介绍一下Vue的基本使用. 一.搭建一个Vue程序 1.1 搭建Vue环境 搭建Vue的开发环境总共有三种方法: 引入CDN <script src=& ...
- vue计算属性和侦听器
一.计算属性: main.js: var app = new Vue({ el: '#app', data: { math: 80, physics: 90, english: 30 }, compu ...
- 一起学Vue之计算属性和侦听器
概述 在Vue开发中,模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.当你想要在模板中多次引用相同表达式时,就会更加难以处理.所以,对于任何复 ...
- Vue.js 生命周期、计算属性及侦听器
一.创建一个Vue实例 每个Vue应用都是使用Vue函数创建一个Vue实例.所有的Vue组件都是一个Vue实例,并且接受相同的选项对象(一些根实例特有的选项除外). 数据和方法 当一个实例被创建后,它 ...
- Vue学习之vue中的计算属性和侦听器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- Linux账号管理与ALC权限设定(一)
UID 与 GID UID用户的编号 GID 用户群组的编号 账号登录时,有一个对应的文本来记录某个账户的UID与GID.然后获得这个UID去对应的密码文本中,取得密码进行比对,然后登陆. 保 ...
- python中关于is,=和==的区别
在Python中 '='相当于赋值 '=='相当于等号两边的值相同 is则是表示两边的id,也就是内存地址相同
- AE开发中实现Control中的各种图形工具的方法(转)
Controls中的工具基本可以分为两类: 第一类:点击工具图标或按钮后,当前axMapControl的工具即为所点击的工具命令. 前面有Controls 后面有tool的工具都可以用同一类的代码实现 ...
- Largest Submatrix 3
Largest Submatrix 3 给出一个\(n\times m\)的网格图,第i行第j列上的格子有数字\(a[i][j]\),显然,你可以从中找到一个子矩阵,保证子矩阵中的数字互不相同,求子矩 ...
- Java中的API
待施工 111 API: Scanner Random String StringBuilder ArrayList 集合详解: 包 import java.util.ArrayList 构造方法pu ...
- Spring Boot 集成Mybatis实现多数据源
静态的方式 我们以两套配置方式为例,在项目中有两套配置文件,两套mapper,两套SqlSessionFactory,各自处理各自的业务,这个两套mapper都可以进行增删改查的操作,在这两个主MYS ...
- 【SQL】Mysql常用sql语句记录
1.创建用户.赋予权限 CREATE DATABASE scadm DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 's ...
- STM32嵌入式开发学习笔记(三):使用按键控制小灯
按键和小灯一样,也是通过GPIO外设与主板连接,也是通过GPIO_InitStruct类型结构体控制其工作. 查阅技术手册,按钮连接GPIOA控制下的管脚0. 但与之不同的是,按键是一种输入设备,输入 ...
- CSS:百科
ylbtech-CSS:百科 1.返回顶部 CSS (层叠样式表) 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标 ...
- PHP面试 PHP基础知识 二(常量及数据类型)
常量及数据类型 PHP八种数据类型 四种标量类型 字符串(string).布尔(boolean).浮点(float/double).整型(integer) 两种复合类型 数组(array).对象(ob ...