所有分类
  • 所有分类
  • 后端开发

刷新网页瞬间变化?立刻揭秘 immediate 属性的神奇效果

你们有没有发现一些事儿,就是有时候刷新网页之后,有些东西瞬间变了,但是还有一些变化得比较慢或者干脆不变化?这到底怎么回事儿?咱们今天就来聊一聊这个话题。

好,现在我们来聊聊 immediate 这个属性!当我们把其设成 true 的时候监听对象就能立刻给出结果喔~打个比方说,你刷新浏览器后控制台就马上出现内容。不过请注意,这时候网页的数据可没变,这样的话,在控制台上看到的 newValue 就是咱们事先写进代码里面去的那个预设值,至于 oldValue ,则会显示出“未定义”这种状态,小伙伴们应该能理解?

但要是咱们手动调整了下newValue.id的数值,那输出又得变啥样儿?结果来了要是没设定immediate或直接把它设成假的,那你刷个页面试试看,绝对没什么反应。就是说,除非那个被监听的对象有变动,否则控制台肯定连个屁都不放。

刷新网页瞬间变化?立刻揭秘 immediate 属性的神奇效果

data() {
   return {
    value:''
   };
  },
  watch:{
   value:{
    handler:'init',
    immediate:true
   }
  },
  methods: {
   init(){
    alert(1)
   }
  }

接着来了解下深度监听(deep)这一特性。将其设定成true以后,就能深入到物体内部,观察到数值的所有变动。而如果没启用这个功能,那我们只能看到表面上的东西,一点儿也别想观测到物体内部的小小变化。

{{student.studentName}}
student:{ studentName:'xi' } watch:{ student:{ handler:function (newValue,oldValue) { console.log(newValue,'new') console.log(oldValue,'old') }, deep:true, immediate:true } }

好了,今天的分享就到这里。希望这段话对你们有帮助~以后有啥要帮忙的就尽管来找我们!你明白我说的话没?其实这个问题还是挺有趣的!为啥有些东西刷个页就能变,有些东西怎么刷都不变?关键就在于 immediate 跟 deep 的设置不一样。想要马上监视对象还得深入研究对象里面的值?那就把 immediate 跟 deep 都设置成 true 呗!这样你就能立马掌握最新数据。如果你还有啥不明白的话可以直接在评论区留言我们等着你!别忘了点赞和分享给别人看看!

原文链接:https://www.icz.com/technicalinformation/web/html5/2024/03/11287.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?