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. 《C++数据结构-快速拾遗》 树结构

    1.简单的二叉树结构 #include <iostream> using namespace std; typedef int DATA; //建立二叉树的简单结构 typedef str ...

  2. RPM软件管理工具

    1 概述 RPM(RedHat Package Manager),Rethat软件包管理工具,类似windows里面的setup.exe 是Linux这系列操作系统里面的打包安装工具,它虽然是RedH ...

  3. scala快速一览

    println("hello world"); val x = +; println(x); //val 不允许再次赋值 //x = 3; //变量var var xx = x; ...

  4. 代码: js: 数值操作

    数值转换: 将 32000 这样的数字,转换为“3.2万” //将32000 这样的数字,转换为 “3.2万” var price = parseInt('31999'); var price2 = ...

  5. Flex学习笔记PopUpMenuButton

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  6. Mycat 简单配置

    文献 https://www.cnblogs.com/parryyang/p/5758087.html 启动

  7. python 机器学习实践入门

    机器学习概念概念 机器 学习是计算机科学的一个分支,从模式识别.人工智能和计算学习理论发展而来,我们可以将其作为数据挖掘的工具 侧重用于数据分析方法理解给定的数据 目的是:开发能够从先前观测的数据,通 ...

  8. cookie操作:设置cookie、读取cookie、删除cookie

    一.设置cookie function setCookie(name, value){ Days = 1; var exp = new Date(); exp.setTime(exp.getTime( ...

  9. python redis客户端使用lua脚本

    有一个需求,为一个key设置一个field存储时间戳,每当有新数据,判断新数据时间戳是否大于之前的时间戳,如果是,更新时间戳,由于依赖中间执行结果,所以使用lua减少客户端和服务端通信次数. #!/u ...

  10. 批量杀死多个进程 linux kill

    批量杀进程 -| “grep -v grep”是在列出的进程中去除含有关键字“grep”的进程. “cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID,也有使用aw ...