gpt4 book ai didi

electron - 在 Electron 应用程序内部使用vue js时出错

转载 作者:行者123 更新时间:2023-12-03 12:30:03 26 4
gpt4 key购买 nike

我正在尝试在 Electron 应用程序内部使用vue.js,但收到以下错误:

Uncaught Exception: ReferenceError: document is not defined at query (/Users/LM/Documents/mongoui/node_modules/vue/dist/vue.common.js:1070:10) at Vue._initProps (/Users/LM/Documents/mongoui/node_modules/vue/dist/vue.common.js:7254:23) at Vue._initState (/Users/LM/Documents/mongoui/node_modules/vue/dist/vue.common.js:7235:10) at Vue._init (/Users/LM/Documents/mongoui/node_modules/vue/dist/vue.common.js:2394:10) at new Vue (/Users/LM/Documents/mongoui/node_modules/vue/dist/vue.common.js:9000:8) at Object. (/Users/LM/Documents/mongoui/main.js:11:1) at Module._compile (module.js:425:26) at Object.Module._extensions..js (module.js:432:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:313:12)



这就是我在 main.js中加载vue.js的方式:
var Vue = require('vue');

new Vue({
el: "#app",
data: {
collections: [
{"name": "test 1"},
{"name": "test 2"},
{"name": "test 3"}
]
}
});

最佳答案

鉴于您的错误:

Uncaught Exception: ReferenceError: document is not defined at query



我假设您正在尝试在Main Process内部使用Vue,不幸的是,Vue如果没有 jsdom之类的东西就无法做到,因为Vue依赖 document,而main进程没有 document

但是,我认为这个问题是从根本上开始的。您可能要使用Render Process中的Vue,因为可以在其中访问 document

本质上,Electron中的主要过程就像全能的 Controller 一样,它是您生成和管理渲染过程的地方。它不引用任何单个DOM,因为在主进程中不存在DOM。取而代之的是考虑渲染过程,渲染过程是像 BrowserWindow 这样的东西,它可以具有DOM。

因此,利用这些信息,我们可以尝试执行以下操作:
main.js:

// import { app, BrowserWindow } from 'electron';
var electron = require('electron'),
app = electron.app,
BrowserWindow = electron.BrowserWindow;

app.on('ready', function() {
var main = new BrowserWindow({ /* ... */ });
main.loadURL('file://' + __dirname + '/index.html');
});

然后,在您的渲染过程中:
index.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example</title>
<script>
var Vue = require('vue');

new Vue({
el: "#app",
data: {
collections: [
{"name": "test 1"},
{"name": "test 2"},
{"name": "test 3"}
]
}
});
</script>
</head>
<body id='app'>

</body>
</html>

当然,您可以根据需要重新组织文件,只记得在渲染过程而不是主过程中使用Vue。

编辑11/4/2016

Vue现在也有 server side rendering,您可能想看看。

关于electron - 在 Electron 应用程序内部使用vue js时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34472046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com