实测系列,均为一些现实中的行业内难题难点攻关,算是最干的最有营养的系列了,欢迎收看,一键三连~
本节课继续来探讨这个新的衍生问题,就是在原页面没有暴露对外的情况下,如何控制vue中内部的data数据?
而这里,实际上是有俩种情况的。
一种是传统的只在单独页面引入vue的 网页,下面是这么写的:
大家可以看到,一开始人家就有了 myapp作为引用,这样我们便没有什么问题,直接在控制台使用myapp来就可以操作 内部的data里的值。当然这种情况属于非常幸运的。
另一种是vue-cli脚手架的情况,这种的下面是这么写的:
这样的话,也就是我们之前讨论的情况,需要手动添加对外暴露的引用才能控制data。如果源码中恰好有这种代码,那么我们直接拿出来用,也算是比较幸运的了。
不过怕就怕 源码中没有任何的对外暴露。我们就只能想其他办法来操控这个data内的数据了。也就是本文探讨的重点,类似于黑客的外界强行注入js的操作。
如果此时你去百度,网上讲的一定全都是修改源码中vue内,加上钩子才行。可惜我们做自动化是无法只通过发送浏览器的控制台命令的方式加上vue内的钩子的。所以基本上此时网络上是搜不到任何解决方案的。
当然如果你去搜索外部js控制vue内data,结果也一样。所有的操作都必须在vue内中有对外暴露的钩子引用才行。
如果真的遇到这种情况,那么你大概率只能自认倒霉了。不过这种情况也缺少较少,因为一般复杂的页面,都可能涉及到需要外部js来调用控制vue内的函数或变量,所以开发一般会保留在内部的钩子以备不时之需。当然安全角度来说也确实存在一点风险。
不过咱们讲的是另外的方案,你继续听:
本文的目的并非简单的教大家怎么去实现自动化js的方式上传elementUI和vue组合的文件。
而是写出了全部的思想过程,希望大家可以学到解决问题的思维,而并非最终答案。