vue electron 创建子窗口后内容和父窗口一样 配置vue-router无效?

vue electron 创建子窗口后内容和父窗口一样 配置vue-router也无效无法进行跳转至我想要的组件页面
main.js如下

import Vue from 'vue'
import App from './App.vue'
import router from './router/index.js'


import axios from 'axios'


// 将 axios 添加的 Vue 原型上后就不需要再在每个需要使用它的页面引入了
Vue.prototype.$http = axios;
// axios.defaults.baseURL = 'http://localhost:3000';
Vue.prototype.$api = process.env.NODE_ENV == 'development' ? "" : "http://localhost:3000/api";


import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.config.productionTip = false

Vue.use(ElementUI);
Vue.use(router)



new Vue({
    router,
    render: h => h(App),
}).$mount('#app')

vue-router如下:

import Vue from 'vue'
import VueRouter from 'vue-router'
import HelloWorld from '@/components/HelloWorld.vue'
import MiniWindow from '@/components/MiniWindow.vue'


// Vue.use(VueRouter)

export default new VueRouter({
    mode: 'hash',
    routes: [{
            path: '/',
            name: 'HelloWorld',
            component: HelloWorld
        },

        {
            path: '/miniWindow',
            name: 'miniWindow',
            component: MiniWindow // 对应组件
        },

        {
            path: "*",
            redirect: "/"
        }

    ]
})

创建窗口代码如下:

open_client() {
                const  { BrowserWindow }  =  require ( '@electron/remote' )
                
                
                const modalPath = process.env.NODE_ENV === 'development'
                    ? 'http://localhost:8888/#/MiniWindow'
                    : `app://./index.html#miniWindow`
                // 使用hash对子页面跳转,这是vue的路由思想
                var miniWindow = new BrowserWindow({
                    width: 600,
                    height: 400,
                    webPreferences: {
                      
                      nodeIntegration: true,
                      contextIsolation: false,
                      webSecurity: false,
                      enableRemoteModule:true,
                    },
                    parent: remote.win // win是background.js里定义的主窗口
                  })
                
                  miniWindow.loadURL(modalPath)
                
                  miniWindow.on('closed', () => {
                    miniWindow = null
                  })
                
            }

路径和App.vue:

打开新窗口和父窗口完全一样,可是MiniWindow.vue里面我没有写任何东西。。

配置路由完全失效了,我把router里的index.js里的两个组件路径对调都不会对页面有任何影响,我怀疑router没生效,可是在里面乱改一通又会报错,代表引用了index.js。。。。

球球大神们救救孩子吧,这是孩子的课程大作业。。。

阅读 4.2k
1 个回答
✓ 已被采纳新手上路,请多包涵

已解决!
问题是App.vue里的公共组件问题,不是路由问题是渲染问题。
少了<router-view></router-view>,我直接把helloworld写进公共组件。。。只能说vue-cli脚手架这个模板真难用。。好多东西还要自己配,连个vue.config.js都没有。。。

附上App.vue代码:

<template>
    
  <div id="app">
    <router-view></router-view>
    <!-- <HelloWorld msg="Welcome to Your Vue.js App"/> -->
    
    <!-- <MiniWindow/> -->
    
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'
import MiniWindow from './components/MiniWindow.vue'

export default {
  name: 'App',
  components: {
    HelloWorld,
    MiniWindow
  }
}
</script>

<style>
/* #app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
} */
</style>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏