Vue-Router + Vuex 实现单页面应用

效果查看(一个食品安全网,大家也可以发布一些食品安全的见闻,尽举手之劳):

 

源代码:https://pan.baidu.com/s/1i43H3LV

如果想要服务器端代码可以在评论里说明一下

 

利用vue路由和vuex实现了一个单页面应用,项目结构如下:

入口:main.js

import './global.css';
// 引用 vue 没什么要说的
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
import qs from 'qs'
Vue.prototype.$qs = qs
// 引用路由
import VueRouter from 'vue-router'
// 光引用不成,还得使用
Vue.use(VueRouter)
// 入口文件为 src/App.vue 文件 所以要引用
import App from './App.vue'
// 引用路由配置文件
import routes from './routes'
//引入data
import data from './data'
// 使用配置文件规则
const router = new VueRouter({routes
})
const store = new Vuex.Store({modules:data
});
// 跑起来吧
/* eslint-disable no-new */
new Vue({el: '#app',store,router: router,render: (createElement) => createElement(App)
})

app.vue:

<template><div class="main"><div class="panel"><router-view></router-view></div><div class="control"><div @click="toHome" class="item homeItem" :class="[selectMenu]"><div class="item-logo"><i class="iconfont icon-home vetically homeItem"></i></div><div class="item-text"><a class="homeItem">home</a></div></div><div @click="toReport" class="item reportItem" :class="[selectMenu]"><div class="item-logo"><i class="iconfont icon-fabu vetically reportItem"></i></div><div class="item-text"><a class="reportItem">report</a></div></div></div></div>
</template>
toHome:function(){this.$store.commit('main/setSelectMenu',{menu:"home"})this.$router.replace("home");//之所以使用replace是不希望后退后回到之前的界面
    },toReport:function(){this.$store.commit('main/setSelectMenu',{menu:"report"})this.$router.replace("report");//之所以使用replace是不希望后退后回到之前的界面}

我们把所有的数据和数据的处理全部放在Vuex里面,也就是我们的data.js:

const main = {namespaced: true,state:{selectMenu:"home"},mutations:{setSelectMenu(state,obj){state.selectMenu = obj.menu;}}
}
const home = {namespaced: true,state:{type:"icon-new",data:[],pageIndex:1,scrollMaxValue:0,scrollPosition:0,isView:false,loading:false},mutations:{setSelectType(state,obj){state.type = obj.type;},setIsView(state,obj){state.isView = obj.value;},setScrollPosition(state,obj){state.scrollPosition = obj.value;},setScrollMaxValue(state,obj){state.scrollMaxValue = obj.value;},setPageIndex(state,obj){state.pageIndex = obj.value;},addPageIndex(state,obj){state.pageIndex = state.pageIndex + 1;},addData(state,obj){state.data = state.data.concat(obj.value);},clearData(state,obj){state.data = [];},setLoading(state,obj){state.loading = obj.value;}}
}
const report = {namespaced: true,state:{reportContent:"",imgList:[]},mutations:{setReportContent(state,obj){state.reportContent = obj.value;},clearImgList:function(state,obj){state.imgList = [];},addImgList:function(state,obj){var dic = {date:obj.date,data:obj.data}state.imgList.push(dic);},delImgList:function(state,obj){let len = state.imgList.length,item = null;for(let i = 0; i < len; i++){item = state.imgList[i];if(!!obj && !!item && item.date == obj.date){state.imgList.splice(i,1);}}}}
}
const details = {namespaced: true,state:{detailsText:"",imgList:[]},mutations:{setDetailsText(state,obj){state.detailsText = obj.value;},setImgList(state,obj){state.imgList = obj.value;},changeImgList:function(state,obj){let imgData = state.imgList;imgData[obj.index] = obj.value;state.imgList = imgData;}}
}
let result = {main:main,home: home,details:details,report: report
}
export default result;

路由:routes.js:

var home = () => import('./vue/home.vue')//这样做的目的是异步加载组件
var report = () => import('./vue/report.vue')
var details = () => import('./vue/details.vue')// import home from './vue/home.vue'
// import blog from './vue/blog.vue'
// import about from './vue/about.vue'
// import topic from './vue/topic.vue'
// 配置路由
export default [{mode: 'history',path: '/home',name:'home',component: home},{mode: 'history',path: '/details',name:'details',component: details},{mode: 'history',path: '/report',name:'report',component: report}
]

  

 

转载于:https://www.cnblogs.com/mrzhu/p/8119481.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

改变宇宙之前,GPT-3最先改变的可能是OpenAI

大数据文摘出品来源&#xff1a;bdtechtalks编译&#xff1a;HippoGPT-3是人工智能研究实验室OpenAI的最新成果。它是有史以来规模最大的语言模型&#xff0c;引发了一系列关于人工智能将如何快速改变众多行业的讨论。但是&#xff0c;很少有人去讨论GPT-3是如何改变OpenAI本身…

day2-元组 列表-赋值和深浅拷贝

一 元组 元组其实跟列表差不多&#xff0c;也是存一组数&#xff0c;只不是它一旦创建&#xff0c;便不能再修改&#xff0c;所以又叫只读列表 用途&#xff1a;一般情况下用于自己写的程序能存下数据&#xff0c;但是又希望这些数据不会被改变&#xff0c;比如&#xff1a;数据…

乖乖给行人让路?学界推出无人机控制技术NMPC,可在低空中实现自主导航和避障...

来源&#xff1a;万物智能视界前天&#xff0c;在深圳经济特区40周年庆上&#xff0c;上千架无人机在深圳上空演绎了一场大型灯光秀。近些年&#xff0c;各种无人机高空秀屡见不鲜&#xff0c;在刚刚过去的七夕夜上&#xff0c;上海警方也运用无人机开启了一场反欺诈安防宣传。…

一天学习一个设计模式之命令模式

命令模式&#xff08;Command&#xff09;&#xff0c;将一个请求封装为一个对象&#xff0c;从而使你可用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤销的操作。 代码如下&#xff1a; 1 /** 2 * 抽象命令角色类 3 */ 4 publi…

PNAS:张航课题组揭示人类为何“扭曲”概率信息

来源&#xff1a;脑科学2020年8月25日&#xff0c;北京大学心理与认知科学学院、北京大学IDG麦戈文脑科学研究所、北大-清华生命科学联合中心的张航研究组在美国科学院院刊&#xff08;PNAS&#xff09;上发表了题为“The bounded rationality of probability distortion”的文…

修改结构体中成员的值

#include <iostream> using namespace std; struct student { char name[10]; float grade; }; //更改student数据的grade成员&#xff0c;参数形式为引用 void change(student& x, float grade) { x.grade grade; } //更改student数据的grade成员&…

为什么AI感知与人类感知无法直接比较?

来源丨TechTalks作者丨Ben Dickson编译丨科技行者人类级别的表现、人类级别的精度……在开发AI系统的企业中&#xff0c;我们经常会听到这类表述&#xff0c;其指向范围则涵盖人脸识别、物体检测&#xff0c;乃至问题解答等各个方面。随着机器学习与深度学习的不断进步&#xf…

微软白皮书:47页报告详解中国芯片设计云技术

来源&#xff1a;智东西在多方面因素的推动下&#xff0c;中国的芯片设计行业迎来了前所未有的发展契机。当前&#xff0c;我国芯片设计业的产品范围已经涵盖了几乎所有门类&#xff0c;且部分产品已拥有了一定的市场规模&#xff0c;但我国芯片产品总体上仍然处于中低端&#…

一文读懂马斯克展示脑机接口:硬币大小芯片植入猪脑 实时读取猪脑信息

视频&#xff1a;马斯克展示脑机接口设备无线实时读取猪脑信息&#xff0c;时长约7分10秒来源&#xff1a;腾讯科技马斯克展示了一群实验猪。这些实验猪之前曾接受过外科手术&#xff0c;由手术机器人将最新版的Neuralink设备植入大脑。这些项目的目标都是利用大脑植入技术实现…

循环,函数,指针作业

一、循环 题目1&#xff1a;7-6 统计素数并求和 提交列表&#xff1a; 流程图&#xff1a; 问题&#xff1a; 解决&#xff1a;mn最多一个素数&#xff0c;都为0无答案&#xff1b;m和n本身也可能是素数。 题目2&#xff1a;7-12 约分最简分式 提交列表&#xff1a; 流程图&…

华为徐文伟:后香农时代,面向数学的十大挑战问题

本文为2020年8月28日徐文伟在长沙由中国工业与应用数学学会举办的“数学促进企业创新发展论坛”上的发言来源&#xff1a;中国科学院院刊徐文伟华为技术有限公司董事&#xff0c;华为战略研究院院长后香农时代数学决定未来发展的边界数学作为基础的基础&#xff0c;将决定未来发…

06006_redis数据存储类型——String

1、概述 &#xff08;1&#xff09;字符串类型是Redis中最为基础的数据存储类型&#xff0c;它在Redis中是二进制安全的&#xff0c;这意味着该类型可以接受任何格式的数据&#xff0c;如JPEG图像数据或Json对象描述信息等&#xff1b; &#xff08;2&#xff09;在Redis中字符…

comparator 多个条件控制_JUnit5学习之四:按条件执行

欢迎访问我的GitHubhttps://github.com/zq2599/blog_demos内容&#xff1a;所有原创文章分类和汇总&#xff0c;及配套源码&#xff0c;涉及Java、Docker、Kubernetes、DevOPS等&#xff1b;本篇概览本文是《JUnit5学习》系列的第四篇&#xff0c;有时咱们希望测试方法仅在一定…

“星链”或成美军未来作战理念新载体

本文来源&#xff1a;中国军网在美国航天政策愈发重视商业航天发展&#xff0c;尤其是美太空军发展对巨型弹性低轨星座提出重大需求的背景下&#xff0c;美国太空探索公司SpaceX乘势将业务从商业航天发射、载人航天货物和乘员运输逐渐扩展至低轨宽带通信服务&#xff0c;即“星…

基基于多态的职工管理系统

效果 添加 显示 删除 查找 排序&#xff08;不演示了&#xff09; 清空所有 头文件 员工类 #pragma once #include <iostream> #include <string> using namespace std;//职工抽象基类 class Worker { public://显示个人信息virtual void showInfo() 0;//获取…

typescript箭头函数参数_Typescript 入门基础篇(一)

Typescript 基础Typescript是Javascript的一个超集。以下typescript简称为ts, 此文章主要是对ts官网文档的一个简化&#xff0c;缩短学习基础时间。类型基础ts 的类型主要有布尔值、数字、字符串、数组、元组、枚举、Any、Void、Null和Undefined、Never。# Boolean let boo : b…

sublime学习笔记

学习课程地址&#xff1a;快乐的sublime编辑器_sublime编辑器使用 另可参考笔记地址&#xff1a; http://c.haoduoshipin.com/happysublime/ http://blog.csdn.net/u014465934/article/details/72810763 PS&#xff1a;博主的一些文章地址&#xff1a;http://happypeter.github…

里程碑式的数学证明,攻破著名Erdős猜想中关键障碍

大数据文摘出品来源&#xff1a;wired编译&#xff1a;Canary、Andy最近&#xff0c;两名数学家解决了一个关于整数相加性质最著名猜想中的第一部分。该猜想由匈牙利传奇数学家Paul Erdős于60多年前提出&#xff0c;一个无限整数序列在何时一定会包含至少有三个等差数的模式&a…

浅复制和深复制

浅复制是由默认构造函数实现的&#xff0c;将对应数据成员一一复制。 浅复制 template<class T> Array<T>::Array(const Array<T>&a) {sizea.size;a.list list; }如果主函数中有这样的语句&#xff1a; int main() {Array<int> a(10);Array<…

admin select 2 异步_解决Angularjs异步操作后台请求用$q.all排列先后顺序问题

最近我在做angularjs程序时遇到了一个问题1.页面有很多选择框&#xff0c;一个选择框里面有众多的选择项&#xff0c;和一个默认选定的项,像下面这样(很多选择框&#xff0c;不只一个)&#xff1a;2.众多的选项要从后台接口得到&#xff0c;默认项从另一个后台接口得到&#xf…