zoukankan      html  css  js  c++  java
  • 计算属性computed缓存 与 methods 的思考

    vue官方介绍说的是使用methods可以轻松实现与计算属性相同的功能且还能接受参数。

    那么计算属性存在的意义是什么呢?

    原来,计算属性是基于他的依赖缓存的,只有当他的依赖的数据发生改变时,它才会重新取值。

    而methods不同,只要重新“渲染”就会被调用。 注意渲染二字,最开始不理解就是因为不明白到底何为渲染,(反正不是刷新)

    下面例子说明问题:

      

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
     7         <script type="text/javascript">
     8             window.onload=function()
     9             {
    10                 var vm=new Vue({
    11                     el:"#div1",
    12                     data:{
    13                         name:"xiaoxiaoyao"
    14                     },
    15                     methods:{
    16                         haha1:function(){
    17                             return Date.now();
    18                         }
    19                     },
    20                     computed:{                        
    21                         haha:{
    22                         //    cache:false,
    23                             get:function()
    24                                 {
    25                             return Date.now();
    26                                 }
    27                         }
    28                     }
    29                 })
    30             }
    31         </script>
    32     </head>
    33     <body>
    34         <div id="div1">
    35             name:{{name}}<br>
    36             <input type="text" v-model="name"><br>
    37             methods输出的date.now    {{haha1()}}<br>
    38             计算属性输出的date.now  : {{haha}}
    39         </div>
    40     </body>
    41 </html>

    效果图:

    百度别人博客说:刷新不是渲染,当页面数据有变化时是渲染

    于是设计如上效果图代码验证,

    在vue中设置data中name的值为xiaoxiaoyao,然后在第一行输出

    第二行是输入框,用v-model与name双向数据绑定,所以我们在输入框中改变值时,第一行的显示会跟着变化

    第三行第四行分别是用methods和computed两种方法输出date.now()

    验证:

      当改变第二行输入框中的值时,页面数据改变,methods会重新加载,而computed是基于依赖缓存的,所以不会变化

    ****注意代码第22行的注释,这是关闭计算属性缓存的,若不注释这行代码,methods与computed都会随着输入框中变化而变化

    .

    本人小白,博客作为在线笔记,若有错误,还望指出,转载链接截图等皆为学习,若有侵权,请告知,
  • 相关阅读:
    [C#] 生成 (web): 未能加载文件或程序集“Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7
    约束布局ConstraintLayout加快布局速度
    微信小程序上传图片(附后端代码)
    Kubernetes1.5正式发布
    Codeforces Round #200 (Div. 1) D. Water Tree(dfs序加线段树)
    1
    流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
    webrtc进阶-信令篇-之三:信令、stun、turn、ice
    6)协程三( asyncio处理并发)
    5)协程二(yeild from)
  • 原文地址:https://www.cnblogs.com/xiaoxiaoyao/p/9156840.html
Copyright © 2011-2022 走看看