首页 > 其他分享 >vue组件更新引起组件更新的原因,如何引发组件的更新

vue组件更新引起组件更新的原因,如何引发组件的更新

时间:2023-03-08 14:14:38浏览次数:33  
标签:vue 引起 更新 组件 页面 模板 赋值

会不会引发vue中的组件更新,只要抓住:组件模板的显示结果会不会改变就行,如果显示结果会变,那就会更新组件,否则不会引发组件更新。

一、数据有没有渲染在页面上:

  1.   数据在模板(页面)里使用了:只要数据变了,自然会引起页面的更新,因为,影响了组件里的模板显示结果
  2.   数据没有在模板(页面)里使用:就算数据变了,也不会引起页面的更新,因为,不影响组件里的模板显示结果

二、数据有没有改动:

前提是,数据在模板里使用了。

  1、数据赋值了,而且赋值前后的值不一样,引起组件的更新,因为,影响了组件里的模板显示结果

  2、数据赋值了,但是赋值前后的值一样的,不会引起组件的更新,因为,没有影响了组件里的模板显示结果

<body >
     <div id="app">
        <p>{{ i }}</p>
        <input type="button" value="i++" @click="changeI()" >
        <input type="button" value="j++" @click="changeJ()" >
        <input type="button" value="改变i,但是赋值为固定的值" @click="setI()" >
        <input type="button" value="j++" @click="changeJ()" >
     </div>    
 </body>
 </html>
 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
 <script>
 
 let vm = new Vue({
     el:'#app',
     data:{    
       i:0,
       j:0
   },
   methods:{
        changeI(){
          this.i++;
        //由于i显示渲染在模板了,所以,引起了组件的更新,即调用了钩子函数beforeUpdate
       },
        changeJ(){
          this.j++;
        //由于j没有渲染在模板上,所以,改变j不会,引起组件更新
       },
       setI(){
           this.i=20;
        //给i赋值为20,会引起组件的更新,但是如果,再次给i赋值为20(值没有变),则不会引起组件更新
       }
   },
   beforeUpdate:function(){
       console.log("beforeUpdate");
   }
});
 
 </script>                

  

 

标签:vue,引起,更新,组件,页面,模板,赋值
From: https://www.cnblogs.com/limou956259/p/17191533.html

相关文章

  • Vue 配置代理服务器
    js发ajax请求的几种方式-xhr(原生js自带):newXMLHttpRequest()xhr.open()xhr.send()-jQuery:$.get()$.post-axios(推荐)-fetch(windows对象自带):有致命......
  • 直播网站源码,vue工具类,时间格式化
    直播网站源码,vue工具类,时间格式化最近做uniapp经常用到时间格式化,需要转为刚刚、几分钟前等字符串格式,自己根据需求整理了一个工具类 效果说明:时间转字符串格式,时间戳......
  • Mybatis 实现多条件、多值批量更新
    UPDATEcourseSETname=CASEidWHEN1THEN'name1'WHEN2THEN'name2'WHEN3THEN'name3'END,title=CASEid......
  • 前端路由(vue2 + vue3 + react)
    前端路由的设置:Vue2路由(vue-router3)安装插件npmivue-router@3router/index.js文件设置importVuefrom"vue";importVueRouterfrom"vue-router";Vue.use(VueRo......
  • VUE定时器任务(每天12点执行)
    原文链接:https://blog.csdn.net/ITERCHARLIE/article/details/124447463设定配置datadata(){config:{time:'00:00:00',//每天几点执行interval:1,......
  • vue 过滤 懒加载 使用elementUI实现树懒加载与节点过滤功能
    vue使用elementUI实现树懒加载功能以及节点过滤 1.过滤:设置filter-node-method,值为过滤函数。2.懒加载:点击节点时才进行该层数据的获取 <el-inputplaceholder......
  • Vue 删除取消时报Uncaught (in promise) cancel错误解决方法
    Vue删除取消时报Uncaught(inpromise)cancel错误,如下图:   原因:this.$confirm方法内置promise方法,所以.catch()不能省略(因为取消操作时,无法捕获),虽然不影响操作,但......
  • VUE上传文件夹的三种解决方案
    ​对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传,从上传的效率来看,利用多线程......
  • vue和原生交互
    vue调用原生的方法varu=navigator.userAgent;varisAndroid=u.indexOf("Android")>-1||u.indexOf("Adr")>-1;//android安卓varisiOS=!!u.m......
  • 组合式vue
    vue组合式风格setup所有使用到的响应式状态都应在setup函数里面定义。<script>//`setup`是一个专门用于组合式API的特殊钩子函数setup(){conststate=r......