是因为vue项目不能直接操作dom,但是有时候开发需求会逼迫我们去操作dom。有两种方式,一种是在很底层引入jq,然后通过jq进行操作,但是这样会失去使用vue的意义,另一种是添加ref属性,对ref进行操作。好的,完美解决。可惜新项目用的是vue或者vue+typeScript。直接简单的this.$refs.xxx并不好用。报错无法识别,很尴尬。经过不懈努力,终于找到了在typeScript+vue项目中使用ref的解决方法:添加一个声明类型,例如:this.$refs.ceshiREFasHTMLAudioElement这样就不会报错,但是打印出来的结果是undefined,这有点说不出的道理。后来在一篇博客中,发现ref没有响应,无法响应加if,可惜加了if判断的标签。另外ref必须在数据渲染后获取,一般在mounted中。而且不需要像上面说的那样声明一个类型,而是声明一个变量:letel:any=this.$refs.ceshi;console.log(el)这样很好,我喜欢这样,因为它很简单我能够了解。
