zoukankan      html  css  js  c++  java
  • vue props传值后watch事件未触发的问题

      父组件传值,子组件监听,明明很简单的一个事情,硬是卡了许久(毕竟不是专业搞前端的,还是吃亏在学识浅陋)。也和自己钻牛角尖有关,想自己解决问题。

      早期我写过一篇vue组件传值的文章,传值方式是这样的:

      

      官网的简单实例也是这样的:

      

       用中括号包含参数即可,至于参数是什么类型,你传值的时候给就行了,用的时候直接用。因为JS是弱类型语言,这块可以不指定参数类型。

       当然,也可以指定,今天遇到的问题就在于这个指定了参数类型。先看官网对于参数类型的描述:

       

        然后是做法:

        

            下午的卡壳就在这个type上, 之前写js习惯了弱类型var的运用,不太习惯去指定这里的type,导致传递了一个对象没有被接收。无语了~

         知道为什么以后事情做起来就容易很多了:

         

         不纠结类型, 直接传过来就完事,怎么用我肯定知道,毕竟是自己写的参数。这样的好处是在配合watch事件使用时贼方便,哪怕你给子页面赋值报错了,也没事,改正就好了,重点是什么,是这样做watch事件不会因为类型错误而无法触发!!这个坑太深.... 正常来讲参数只要传了,变化了,watch事件时可以监听到的,但是我这里类型给错了直接导致watch事件不触发,页面也不报错,得硬看代码逐行调试才知道为什么。所以说有时候报错是好的, 错误信息能帮助你定位问题,而最可怕的问题反而是什么错也没有,功能出不来,这真的令人抓狂。

            当然了, 参数是否指定类型以及是否给予默认值,这个得由开发者来决定,有时候还要看项目具体情况,我这里只是吐槽一下刚刚踩到的坑。网上也有其他的一些诸如watch事件不触发的问题,但我想估计没我这个坑, 可能有的人也遇到类似的问题吧。

         

  • 相关阅读:
    软件测试需求分析与跟踪
    应用程序通用测试技术
    测试计算机软件发展历史
    多个iframe的刷新问题
    web:div模块自适应问题
    求:多人合作代码管理的好办法
    第一天
    jQuery,选择器,选择父页面的元素
    鼠标移入移出冒泡事件解决 Jquery mouseenter和mouseleave
    jQuery DOM操作IE6兼容性
  • 原文地址:https://www.cnblogs.com/sunshine-wy/p/11424693.html
Copyright © 2011-2022 走看看