Vue如何通過(guò)瀏覽器控制臺(tái)查看全局data值
前言
Vue中借助data實(shí)現(xiàn)了數(shù)據(jù)的存儲(chǔ)和中轉(zhuǎn),方便了界面的綁定渲染和值使用.
一些時(shí)候,為了調(diào)試程序,我們可能需要通過(guò)瀏覽器來(lái)查看data中的值到底目前是一個(gè)什么情況,方便調(diào)試和查找問(wèn)題.
而現(xiàn)有基于Vue-cli框架和單個(gè)頁(yè)面的Vue在定義時(shí),會(huì)導(dǎo)致data獲取值方法不相同.尤其是通過(guò)Vue-cli創(chuàng)建的,里面的文件都是一個(gè)個(gè)的組件,如何在控制臺(tái)中修改,查看組件data里的值??
(1)沒(méi)有或找不到具體的Vue對(duì)象
發(fā)現(xiàn)很多通過(guò)Vue-Cli創(chuàng)建的具體頁(yè)面在定義data后,export時(shí),多半沒(méi)有對(duì)象(直接頁(yè)面),如下:
export default {
data() {
return {
locale,
labelCol: { span: 2 },
wrapperCol: { span: 20 },
other: "",
form: {
name: "",
goodsType: undefined,
goodsTime: undefined,
delivery: false,
type: [],
goodsDesc: "",
},
...
},這樣,我們?cè)跒g覽器中沒(méi)有對(duì)外的對(duì)象,怎么獲取data值,確實(shí)令人抓頭...
方法,解助,created方法,在該方法中定義一個(gè)myData全局對(duì)象實(shí)例并指向當(dāng)前對(duì)象this,來(lái)獲取實(shí)例.并通過(guò)windows暴露給全局,代碼如下:
created() {
window.myData = this;//將變量全局化,這樣瀏覽器可以查看當(dāng)前data是什么情況::myData._data
},這樣,在瀏覽器控制臺(tái),直接使用myData對(duì)象就可以獲取到值,獲取data值,通過(guò)myData._data
(2)Vue在外層定義了實(shí)例來(lái)包裹整個(gè)對(duì)象
傳統(tǒng)的html形式引用vue可以通過(guò)給最外層的vue實(shí)例命名方式.這種方式,就比較直接簡(jiǎn)單了,可直接通過(guò)該實(shí)例直接獲取.
var myapp=new Vue({
el:'#app',
data:{
a:1
}
})獲取值:在控制臺(tái)輸入myapp.a=2改變里面data的值,這樣在瀏覽器控制臺(tái)調(diào)試很方便
補(bǔ)充:vue在控制臺(tái)展開(kāi)有值代碼卻獲取不到
1.瀏覽器控制臺(tái)獲取到的是當(dāng)前值
當(dāng)我們?cè)赾onsole.log輸出測(cè)試點(diǎn)開(kāi)查看是否有值時(shí),發(fā)現(xiàn)明明有值,代碼使用時(shí)卻獲取不到,這是因?yàn)闉g覽器獲取的是該參數(shù)當(dāng)前的值,而不是你console.log輸出時(shí)的值。

可以發(fā)現(xiàn)當(dāng)我們?cè)趯?duì)展開(kāi)之前又給它push一個(gè)值后,展開(kāi)的是最新的數(shù)據(jù)而不是調(diào)用它時(shí)的數(shù)據(jù),這點(diǎn)在你展開(kāi)時(shí)瀏覽器其實(shí)有說(shuō)明,不過(guò)大家平時(shí)可能沒(méi)注意。

2.vue this指向發(fā)生改變
這嚴(yán)格來(lái)說(shuō)不屬于該情況,不過(guò)也經(jīng)常是我這種小白容易忽略的地方,就放在一起了,方便自己以后查閱。
在使用例如setTimeout等(不知道還有沒(méi)有,我目前記得這一個(gè))函數(shù)時(shí),this的指針指向不再指向vm,而是會(huì)指向Windows,因此在setTimeout中使用this時(shí)會(huì)賦值不上,可以在方法內(nèi)使用setTimeout之前重新定義一個(gè)參數(shù)將this保存下來(lái)。

異步請(qǐng)求
如axios、ajax發(fā)送請(qǐng)求時(shí)是異步的,因此在發(fā)送請(qǐng)求后立即調(diào)用想要返回的信息可能為空,但是當(dāng)我們?cè)诳刂婆_(tái)展開(kāi)時(shí)接口數(shù)據(jù)返回完成,又能查看到數(shù)據(jù)了??梢赃x擇停用異步或用setTimeout增加一定的延時(shí)。
總結(jié)
到此這篇關(guān)于Vue如何通過(guò)瀏覽器控制臺(tái)查看全局data值的文章就介紹到這了,更多相關(guān)Vue瀏覽器控制臺(tái)查看全局data值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue build過(guò)程取消console debugger控制臺(tái)信息輸出方法詳解
- vue控制臺(tái)警告Runtime directive used on component with non-element root node
- 使用vue-i18n?入口文件配置控制臺(tái)報(bào)警問(wèn)題解決
- 安裝vue3開(kāi)發(fā)者工具但控制臺(tái)沒(méi)有顯示出vue選項(xiàng)的解決
- 解決vue 使用axios.all()方法發(fā)起多個(gè)請(qǐng)求控制臺(tái)報(bào)錯(cuò)的問(wèn)題
- 解決Vue控制臺(tái)報(bào)錯(cuò)Failed to mount component: template or render function not defined.
相關(guān)文章
vue?實(shí)現(xiàn)左滑圖片驗(yàn)證功能
網(wǎng)頁(yè)中滑動(dòng)圖片驗(yàn)證一直是各大網(wǎng)站、移動(dòng)端的主流校驗(yàn)方式,其主要作用是為了區(qū)分人和機(jī)器以及為了防止機(jī)器人程序暴力登錄或攻擊從而設(shè)置的一種安全保護(hù)方式,這篇文章主要介紹了vue?實(shí)現(xiàn)左滑圖片驗(yàn)證,需要的朋友可以參考下2023-04-04
解決vue 打包發(fā)布去#和頁(yè)面空白的問(wèn)題
今天小編就為大家分享一篇解決vue 打包發(fā)布去#和頁(yè)面空白的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue中的vendor.js文件過(guò)大問(wèn)題及解決
這篇文章主要介紹了vue中的vendor.js文件過(guò)大問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
vue2使用el-date-picker實(shí)現(xiàn)動(dòng)態(tài)日期范圍demo
這篇文章主要為大家介紹了vue2使用el-date-picker實(shí)現(xiàn)動(dòng)態(tài)日期范圍示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
vue-create創(chuàng)建VUE3項(xiàng)目詳細(xì)圖文教程
create-vue是Vue官方新的腳手架工具,底層切換到了vite(下一代前端工具鏈),為開(kāi)發(fā)提供極速響應(yīng),下面這篇文章主要給大家介紹了關(guān)于vue-create創(chuàng)建VUE3項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2024-03-03
Vue+ElementUI 中級(jí)聯(lián)選擇器Bug問(wèn)題的解決
這篇文章主要介紹了Vue+ElementUI 中級(jí)聯(lián)選擇器Bug問(wèn)題的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
vue.js vue-router如何實(shí)現(xiàn)無(wú)效路由(404)的友好提示
眾所周知vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁(yè)面應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于vue.js中vue-router如何實(shí)現(xiàn)無(wú)效路由(404)的友好提示的相關(guān)資料,需要的朋友可以參考下。2017-12-12

