【发布时间】:2019-12-25 19:40:34
【问题描述】:
如果用户在 localStorage 中设置属性,我创建了一个 Vue 插件来激活 console.logs。该插件是console.log() 的包装器。如果用户输入'localStorage.isLoggingData = true',则插件将测试该属性是否存在于本地存储中,并使用run来测试logData函数
index.js
import logData from '../plugins/logData
// I want to console.log this inital data coming into the app
async init ({ state, commit, dispatch }) {
try {
const { data } = await messaging.send(ACTION.READY)
logData(data)
main.js
import logData from '../plugins/logData
// Use logData to optionally view console.log statements
Vue.use(logData)
logData.js
export default {
install: function (Vue) {
Vue.prototype.$logData = function (dataToLog) {
const isLoggingData = localStorage.getItem('isLoggingData')
if (isLoggingData) {
console.log(dataToLog)
}
}
}
}
目前,当我们遇到应用程序错误时,我们会路由到错误页面,当我注释掉“logData(data)”时,我会被路由到应用程序中的正确页面。我没有创建插件或没有正确导入它吗?
更新index.spec.js
import logData from '../plugins/logger'
import { createLocalVue, shallowMount } from '@vue/test-utils'
import App from '@src/App'
const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(logData)
const mocks = {
_vm: {}
}
mocks._vm.$logData = logData
const wrapper = shallowMount(App, {
mocks,
localVue
})
我现在被告知要模拟 _vm。这是模拟它的正确方法吗?
【问题讨论】:
标签: javascript vue.js plugins