vue设置路由为了服务器渲染今天换另一种方式首先在文件夹中router建立router和routes两个js文件,router用来设置路由,routes用来建立路由代码如下:

router:

import Todo from '../components/views/Todo'
import Login from '../components/views/Login'
export default [
{path:'/',
redirect:'/app' },
{
path:'/app',
component:Todo
},
{
path:'/login',
component:Login
}
] routes:
import Router from 'vue-router'
import routes from './router'
/*const router = new Router({
routes
})
export default router 不要这么写要如下这么写因为我们要服务端渲染如果像刚才那么写就会出现内存溢出的问题,项目中需要用到服务端渲染,如果文件只 export 一个 router,
导致服务端渲染时,出现内存溢出的问题。如果只有 一个 router, 每次服务端渲染都会生成一个新的 app,而 router 只有一个对象,就会缓存每次新建的 app,
导致 app 对象在服务端渲染完成之后没有被释放掉,最后内存溢出。
export default  () =>{
return new Router({
routes,
// 取消历史哈希
mode:'history',
//给路由添加参数去掉也能跳转到相应的路径不去掉也能跳转到相应的了路径
base:'/base/',
//如果页面滚动时候如果有保存原来的位置则跳转的时候还在原来的位置否则在页面的最上面和最左面
// 路由跳转的时候相应的class设置方便设置样式
linkActiveClass:'active-link',
linkExactActiveClass:'exact-active-link',
scrollBehavior (to,from,savedPosition){
if (savedPosition) {
return
}else {
return {x:0,y:0}
} }
})
}
在main.js中设置如下:
import Vue from 'vue'
import App from './App'
import VueRouter from 'vue-router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import Vuex from 'vuex'
Vue.use(Vuex)
Vue.config.productionTip = false
Vue.use(ElementUI);
Vue.use(VueRouter)
import createRouter from './router/routes'
const router = new createRouter()
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})
因为我们要服务端渲染如果像刚才那么写就会出现内存溢出的问题
同样vuex也可以采用和上面vue-router的形式构建代码:sore.js代码如下:
import Vuex from 'vuex'
import Vue from 'vue'
//自所以用defaultState是因为我们要服务端渲染的过程因为我们default数据没有和业务相关内容
import defaultState from './state/state'
import mutations from './mutations/mutations'
import getters from './getters/getters'
import actions from './actions/actions'
Vue.use (Vuex)
export default () =>{
return new Vuex.Store ({
strict :isDev,
state:defaultState,
mutations,
getters,
actions
})
}
main.js代码如下:
import Vue from 'vue'
import App from './App'
import VueRouter from 'vue-router'
import creatRouter from './router/router'
import createStore from './store/store'
import Vuex from 'vuex'
Vue.use (Vuex)
Vue.use (VueRouter)
const store = createStore()
const router = creatRouter ()
let app = new Vue ({
el: '#app',
template:
data: {
text: 1
},
router,
store,
components: {App},
template: '<App/>'
})

 
 
 
 

vue-router,vuex的更多相关文章

  1. Vue 2.0 + Vue Router + Vuex

    用 Vue.js 2.x 与相配套的 Vue Router.Vuex 搭建了一个最基本的后台管理系统的骨架. 当然先要安装 node.js(包括了 npm).vue-cli 项目结构如图所示: ass ...

  2. [Vue 牛刀小试]:第十三章 - Vue Router 基础使用再探(命名路由、命名视图、路由传参)

    一.前言 在上一章的学习中,我们简单介绍了前端路由的概念,以及如何在 Vue 中通过使用 Vue Router 来实现我们的前端路由.但是在实际使用中,我们经常会遇到路由传参.或者一个页面是由多个组件 ...

  3. Vue3: 如何以 Vite 创建,以 Vue Router, Vuex, Ant Design 开始应用

    本文代码: https://github.com/ikuokuo/start-vue3 在线演示: https://ikuokuo.github.io/start-vue3/ Vite 创建 Vue ...

  4. 【vue】vue +element 搭建项目,vuex中的store使用

    概述: 每一个 Vuex 应用的核心就是 store(仓库).“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state).Vuex 和单纯的全局对象有以下两点不同: Vuex 的 ...

  5. 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI

    一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...

  6. python 全栈开发,Day93(vue内容补充,VueX)

    昨日内容回顾 1. 页面的布局 Vue中使用Bootstrap搭页面 1. 安装 1. npm install bootstrap@3.3.7 -S 2. 使用 1. import 'bootstra ...

  7. python 全栈开发,Day91(Vue实例的生命周期,组件间通信之中央事件总线bus,Vue Router,vue-cli 工具)

    昨日内容回顾 0. 组件注意事项!!! data属性必须是一个函数! 1. 注册全局组件 Vue.component('组件名',{ template: `` }) var app = new Vue ...

  8. Vue Router路由守卫妙用:异步获取数据成功后再进行路由跳转并传递数据,失败则不进行跳转

    问题引入 试想这样一个业务场景: 在用户输入数据,点击提交按钮后,这时发起了ajax请求,如果请求成功, 则跳转到详情页面并展示详情数据,失败则不跳转到详情页面,只是在当前页面给出错误消息. 难点所在 ...

  9. vue学习记录:vue引入,validator验证,数据信息,vuex数据共享

    最近在学习vue,关于学习过程中所遇到的问题进行记录,包含vue引入,validator验证,数据信息,vuex数据共享,传值问题记录 1.vue 引入vue vue的大致形式如下: <temp ...

  10. (转)vue router 如何使用params query传参,以及有什么区别

    写在前面: 传参是前端经常需要用的一个操作,很多场景都会需要用到上个页面的参数,本文将会详细介绍vue router 是如何进行传参的,以及一些小细节问题.有需要的朋友可以做一下参考,喜欢的可以点波赞 ...

随机推荐

  1. ActiveMQ核心技术

                                        消息中间件技术 一.ActiveMQ 1>生产消息,消费消息流程图

  2. nodejs运行的两种方式<小记>

    在mac上: 1.方式一:使用IDE运行 配置需要运行的js文件: 配置并运行 ①配置运行的js文件和运行的文件不一致时会导致报错.如图备注 ②当运行另一个文件提示端口8080被占用 ,需要改为其他端 ...

  3. list 列表 和一些操作方法

    1. 什么是列表 定义: 能装对象的对象 在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求 列表存在索引和切片. 和字符串是一样的. 2. 相关的增删改查操作(重点) 添 ...

  4. 安全测试8_Web安全实战1(DVWA部署)

    1.渗透神器的打造(火狐浏览器的打造) Firebug HackBar(渗透插件) Tamper Data(抓包.截包.改包等功能) Proxy Switcher(代理设置) 2.PHP环境安装(ph ...

  5. Oracle12c Client安装出现"[INS-30131]"错误“请确保当前用户具有访问临时位置所需的权限”解决办法之完整版

    管理工具>计算机管理>系统工具>共享文件夹>共享 右键单击“共享”>新建共享> 如果出现右键无法出现“新建共享”选项请"控制面板>所有控制面板项&g ...

  6. SVG:中国地图

    中国地图 <svg height="578" version="1.1" width="718" xmlns="http:/ ...

  7. hdfs线上修改 nameserivce

    hdfs线上修改 nameserivce(ns1 修改为 ns2) 1.去core-site.xml.hdfs-site.xml 把ns1 -> ns2 同步所有节点 2.去journal 数据 ...

  8. 错误:SyntaxError: Missing parentheses in call to 'print'

    1.Python3编译器使用print函数需加括弧 print(XXX) 而Python 2可以print XXX 2.Python3表示不等只能用"!=" 3.在python3中 ...

  9. 深度学习原理与框架-神经网络架构 1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差) 4.dropout(防止过拟合操作)

    神经网络构架:主要时表示神经网络的组成,即中间隐藏层的结构 对图片进行说明:我们可以看出图中的层数分布: input layer表示输入层,维度(N_num, input_dim)  N_num表示输 ...

  10. innosetup 安装前、卸载前判断是否有进程正在运行<转>

    [Code] //安装前判断是否有进程正在运行,istask.dll文件与打包的exe文件一起 function RunTask(FileName: string; bFullpath: Boolea ...