下面是计算属性相关代码:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue3</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--<link rel="stylesheet" type="text/css" href="main.css"/>-->
<script src="vue.js"></script>
</head>
<body>
<!--计算属性computed,可以用在一些复杂逻辑上-->
<div id="app">
<!--1.模板中逻辑过重,不易维护-->
<p>{{msg.split('').reverse().join('')}}</p><br>
<!--2.用上computed属性,适用于复杂逻辑-->
<p>原值:{{msg}}</p>
<p>使用computed:字符串反转后的值:{{reverseMsg}}</p><br>
<!--3.用methods-->
<p>原值:{{msg}}</p>
<p>使用methods:字符串反转后的值:{{reverseMsg1()}}</p><br>
<!--我们可以发现computed属性和methods得到的结果是一样的。但是computed是基于它的缓存依赖(例子中指vm.msg),
只有相关依赖改变才会重新取值;但是methods,每次重新渲染时,都会重新取值-->
<!--所以说一般computed性能更好--> <!--计算属性默认只有getter,不过我们可以设置setter-->
<p>{{fullName}}</p>
<p>{{firstName}}</p>
<p>{{lastName}}</p>
</div> <script>
var vm=new Vue({
el: '#app',
//选项对象
data:{
msg:'hello',
firstName:'Smith',
lastName: 'Lee'
},
//声明计算属性,提供的函数将用作vm.reverseMsg的getter
//vm.reverseMsg依赖于vm.msg;vm.msg改变时,vm.reverseMsg也会改变
computed:{
//计算属性的getter
reverseMsg:function(){
return this.msg.split('').reverse().join('');
},
fullName:{
get:function(){
return this.firstName+' '+this.lastName;
},
set:function(newValue){
var value=newValue.split(' ');
this.firstName=value[0];
this.lastName=value[1];
}
} },
methods:{
reverseMsg1:function(){
return this.msg.split('').reverse().join('');
}
}
});
vm.fullName='John Lee';
</script>
</body>
</html>

2.下面是监听器相关代码:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue4 监听属性</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--<link rel="stylesheet" type="text/css" href="main.css"/>-->
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="meter">
<input type="text" v-model="kilometer">
<p class="test"></p>
</div>
<!--其实计算属性在大多数时候更合适,但是当数据执行异步操作或开销较大的操作时,需要采用监听器操作-->
<script>
var vm=new Vue({
el: '#app',
data:{
meter:'',
kilometer: ''
},
watch:{
//watch创建了meter和kilometer两个方法
meter:function(val){
this.meter=val;
this.kilometer=val/1000;
},
kilometer:function(val){
this.kilometer=val;
this.meter=val*1000;
}
}, });
vm.$watch('meter',function(newValue,oldValue){
document.getElementsByClassName('test')[0].innerHTML="meter新值:"+newValue+ ";" + "meter旧值:"+oldValue;
})
</script>
</body>
</html>

在第一个输入框中输入123后,运行结果:

参考:https://cn.vuejs.org/v2/guide/http://www.runoob.com/vue2

Vue学习3:计算属性computed与监听器的更多相关文章

  1. VUE学习之计算属性computed

    计算属性:computed 先看一下官网的说法 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="ex ...

  2. Vue教程:计算属性computed与侦听器watch(三)

    计算属性computed 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example" ...

  3. [Vue]method与计算属性computed、侦听器watch与计算属性computed的区别

    一.方法method与计算属性computed的区别 方法method:每当触发重新渲染时,调用方法method将总会再次执行函数: 计算属性computed:计算属性computed是基于它们的响应 ...

  4. 怎样理解 Vue 中的计算属性 computed 和 methods ?

    需求: 在 Vue 中, 我们可以像下面这样通过在 引号 或 双花括号 内写 js 表达式去做一些简单运算, 这是可以的, 不过这样写是不直观的, 而且在 html 中 夹杂 一些运算逻辑这种做法其实 ...

  5. vue的计算属性computed和监听器watch

    <template> <div> this is A.vue <br> <!--计算属性--> <label for="msg" ...

  6. Vue.js学习 Item5 -- 计算属性computed与$watch

    在模板中绑定表达式是非常便利的,但是它们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护.这就是为什么 Vue.js 将绑定表达式限制为一个表达式.如果需 ...

  7. vue学习笔记 计算属性(四)

    计算属性就是vue实例里的computed属性,对应一个对象,里面可以放各种方法,方法的作用就是可以生成和数据变量对应的计算后的变量,跟数据相关的复杂逻辑变量,都可以使用计算属性实现,computed ...

  8. Vue学习之--------计算属性(2022/7/9)

    文章目录 1.计算属性 1.1 计算属性实现 1.1.1 基础知识 1.1.2 代码实例 1.1.3 测试效果 1.2 计算属性简写 1.2.1 简写代码 1.3 使用插值语法实现 1.3.1 代码实 ...

  9. vue监听器watch & 计算属性computed

    侦听器watch vue中watch是用来监听vue实例中的数据变化 watch监听时有几个属性: handle:其值是一个回调函数,就是监听对象对话的时候需要执行的函数 deep:其值true 或者 ...

随机推荐

  1. Selenium爬取电影网页写成csv文件

    绪论 首先写这个文章的时候仅仅花了2个晚上(我是菜鸟所以很慢),自己之前略懂selenium,但是不是很懂csv,这次相当于练手了. 第一章 环境介绍 具体实验环境 系统 Windows10教育版 1 ...

  2. 使用Eclipse中的SVN提交代码遇到的问题

    问题: Previous operation has not finished; run 'cleanup' if it was interrupted svn: Commit failed (det ...

  3. [LeetCode] Convert Binary Search Tree to Sorted Doubly Linked List 将二叉搜索树转为有序双向链表

    Convert a BST to a sorted circular doubly-linked list in-place. Think of the left and right pointers ...

  4. Solve Error: node postinstall sh: node: command not found

    When install the yeoman using the following command: npm install -g yo You might have the following ...

  5. PHP 可以获取客户端哪些访问信息---来自网页转载

    php是一种弱类型的程序语言,但是最web的 在程序语言中有系统全局函数: $_SERVER <?php echo "".$_SERVER['PHP_SELF'];#当前正在 ...

  6. 解密Redis的持久化和主从复制机制

    Redis持久化 Redis 提供了多种不同级别的持久化方式: RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AOF 持久化记录服务器执 ...

  7. python dgango简介 安装 多表查询

    一.socket服务器 import socket sk=socket.socket() sk.bind(("127.0.0.1",8890)) sk.listen() while ...

  8. 微信小程序计算经纬距离

    微信小程序计算经纬距离 微信小程序计算两点间的距离 getDistance: function (lat1, lng1, lat2, lng2) { lat1 = lat1 || 0; lng1 = ...

  9. 数位DP HDU - 2089 不要62

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  10. 转:ContextCapture通过手机照片生成java编程思想的三维模型

    原文地址:ContextCapture通过手机照片生成java编程思想的三维模型 从手机拍摄的办公桌场景照片  生成   倾斜摄影模型 截取部分照片如下图所示,详细内容参见原文.