【vue实战项目】通用管理系统:首页

前言

本文为博主的vue实战小项目系列中的第三篇,很适合后端或者才入门的小伙伴看,一个前端项目从0到1的保姆级教学。前面的内容:

【vue实战项目】通用管理系统:登录页-CSDN博客

【vue实战项目】通用管理系统:封装token操作和网络请求-CSDN博客

【vue实战项目】通用管理系统:api封装、404页-CSDN博客

本文将讲解实现整个项目的重点:首页的搭建,包含菜单、菜单的路由转跳、面包屑导航等内容。

目录

1.搭架子

2.布局

​编辑

3.Header

4.Footer

5.Menu

5.1.页面

5.2.路由

5.2.1自定义菜单内容

5.2.2.开启路由功能

6.面包屑导航


1.搭架子

先来看一下主页的样子:

主页的结构:头部+中间+底部,也就是由header、menu、footer三个组件组成。由于这三个组件是很多页面都要用到的公共组件,所以在components下面建一个common用来放这些公共组件。然后分别建三个组件的架子,先建三个空白的架子吧,后面一点点往这三个组件里填内容。

先把这三个组件写出来,先写三个空白的架子即可,后面再慢慢填充:

header:

<template><div>footer</div>
</template><script>
export default{data(){return {}}
}
</script>
<style lang="less" scoped></style>

footer:

<template><div>footer</div>
</template><script>
export default{data(){return {}}
}
</script>
<style lang="less" scoped></style>

menu:

<template><div>menu</div>
</template><script>
export default{data(){return {}}
}
</script>
<style lang="less" scoped></style>

在helloworld组件里面引入一下,看看能不能正常引入:

<template><div class="helloworld"><Header></Header><Menu/><Footer/></div>
</template><script>
import Footer from './common/Footer.vue'
import Header from './common/Header.vue'
import Menu from './common/Menu.vue'
export default {components:{Footer,Menu,Header},data(){return{}}
}
</script>

能正常引入的话,页面上会显示几个组件的内容:

然后基于原来的HelloWorld改成Home页面:

<template><div class="home"><Header></Header><Menu/><Footer/></div>
</template><script>
import Footer from './common/Footer.vue'
import Header from './common/Header.vue'
import Menu from './common/Menu.vue'
export default {components:{Footer,Menu,Header},data(){return{}}
}
</script><style lang="less">
.home{width: 100%;height: 100%;
}
</style>

2.布局

准备好三个组件后,接下来就是对Home进行布局,既然用了UI框架,直接用elementUI提供的布局即可,在其官网上有:

选一个,改一改,然后调整一下样式:

<template><div class="home"><Header/><el-container class="content"><Menu/><el-container><el-main>Main</el-main><el-footer><Footer/></el-footer></el-container></el-container></div>
</template><script>
import Footer from './common/Footer.vue'
import Header from './common/Header.vue'
import Menu from './common/Menu.vue'
export default {components:{Footer,Menu,Header},data(){return{}}
}
</script><style lang="less">
.home{width: 100%;height: 100%;.content{position: absolute;width: 100%;top: 60px;bottom: 0;}
}
</style>

3.Header

接下来需要调整一下header,根据上面的效果图可以看到,header上面要显示系统的名字和登录用户的用户名。系统名称直接写死,用户名可以用到我们之前封装的setToken.js去取登陆后我们放在缓存中的username作为用户名来显示。

<template><div><el-header><div class="title">通用管理系统</div><div>{{name}}</div></el-header></div>
</template><script>
import {getToken} from '@/utils/setToken.js' 
export default{data(){return {name:''}},created(){this.name=getToken('username')}
}
</script>
<style lang="less" scoped></style>

系统名称要在最左边,用户名要在最右边,所以调整一下样式:

<template><div class="header"><el-header><div class="title">通用管理系统</div><div>{{name}}</div></el-header></div>
</template><script>
import {getToken} from '@/utils/setToken.js' 
export default{data(){return {name:''}},created(){this.name=getToken('username')}
}
</script>
<style lang="less" scoped>.header{.el-header{background: #2578b5;color: #fff;line-height: 60px;display: flex;justify-content: space-between;.title{width:200px;font-size: 24px;}}}
</style>

这样Header就处理好了。

4.Footer

footer比较简单,用一个el-card来包裹,加上一些文字内容就可以了。

<template><div class="footer"><el-card>Frontend 2023 BugMan</el-card></div>
</template><script>
export default{data(){return {}}
}
</script>
<style lang="less" scoped></style>

5.Menu

5.1.页面

菜单组件elementUI也提供了:

去找一个,然后调整一下即可:

<template><div class="menu"><el-aside width="200px"><el-col :span="12"><h5>自定义颜色</h5><el-menudefault-active="2"class="el-menu-vertical-demo"@open="handleOpen"@close="handleClose"background-color="#545c64"text-color="#fff"active-text-color="#ffd04b"><el-submenu index="1"><template slot="title"><i class="el-icon-location"></i><span>导航一</span></template><el-menu-item-group><template slot="title">分组一</template><el-menu-item index="1-1">选项1</el-menu-item><el-menu-item index="1-2">选项2</el-menu-item></el-menu-item-group><el-menu-item-group title="分组2"><el-menu-item index="1-3">选项3</el-menu-item></el-menu-item-group><el-submenu index="1-4"><template slot="title">选项4</template><el-menu-item index="1-4-1">选项1</el-menu-item></el-submenu></el-submenu><el-menu-item index="2"><i class="el-icon-menu"></i><span slot="title">导航二</span></el-menu-item><el-menu-item index="3" disabled><i class="el-icon-document"></i><span slot="title">导航三</span></el-menu-item><el-menu-item index="4"><i class="el-icon-setting"></i><span slot="title">导航四</span></el-menu-item></el-menu></el-col></el-aside></div>
</template><script>
export default {data() {return {};},methods: {handleOpen(key, keyPath) {console.log(key, keyPath);},handleClose(key, keyPath) {console.log(key, keyPath);},},
};
</script>
<style lang="less" scoped></style>

看一下效果图,会发现菜单虽然是引进去了,但是样式很奇怪,所以接下来要做的就是调整菜单样式。

有左右和上下的滑动条说明高度和宽度不够,将高度拉到100%,宽度调宽一点即可。背景色不和谐,需要手动调整一下背景色。具体的样式调整后整个menu组件内容如下:

<template><div class="menu"><el-aside width="200px"><el-menudefault-active="2"class="el-menu-vertical-demo"@open="handleOpen"@close="handleClose"background-color="#2578b5"text-color="#fff"active-text-color="#ffd04b"><el-submenu index="1"><template slot="title"><i class="el-icon-location"></i><span>导航一</span></template><el-menu-item-group><template slot="title">分组一</template><el-menu-item index="1-1">选项1</el-menu-item><el-menu-item index="1-2">选项2</el-menu-item></el-menu-item-group><el-menu-item-group title="分组2"><el-menu-item index="1-3">选项3</el-menu-item></el-menu-item-group><el-submenu index="1-4"><template slot="title">选项4</template><el-menu-item index="1-4-1">选项1</el-menu-item></el-submenu></el-submenu><el-menu-item index="2"><i class="el-icon-menu"></i><span slot="title">导航二</span></el-menu-item><el-menu-item index="3" disabled><i class="el-icon-document"></i><span slot="title">导航三</span></el-menu-item><el-menu-item index="4"><i class="el-icon-setting"></i><span slot="title">导航四</span></el-menu-item></el-menu></el-aside></div>
</template><script>
export default {data() {return {};},methods: {handleOpen(key, keyPath) {console.log(key, keyPath);},handleClose(key, keyPath) {console.log(key, keyPath);},},
};
</script>
<style lang="less" scoped>
.menu{.el-aside{height: 100%;.el-menu{height:100%;}.el-submenu .el-menu-item{min-width: 0;}}
}
</style>

调整后的效果:

我们其实用不到那么多一级菜单,只保留一个导航一即可,并且其实我们也不需要elementUI自带的示例里面给出的handleOpen和handleClose方法,所以这里再整理一下页面,最终的内容和效果如下:

<template><div class="menu"><el-aside width="200px"><el-menudefault-active="2"class="el-menu-vertical-demo"background-color="#2578b5"text-color="#fff"active-text-color="#ffd04b"><el-submenu index="1"><template slot="title"><i class="el-icon-location"></i><span>导航一</span></template><el-menu-item-group><el-menu-item index="1-1">选项1</el-menu-item><el-menu-item index="1-2">选项2</el-menu-item></el-menu-item-group></el-submenu></el-menu></el-aside></div>
</template><script>
export default {data() {return {};},
};
</script>
<style lang="less" scoped>
.menu{.el-aside{height: 100%;.el-menu{height:100%;}.el-submenu .el-menu-item{min-width: 0;}}
}
</style>

最终调整后的效果:

5.2.路由

5.2.1自定义菜单内容

菜单最核心的内容自然是点某一项转跳到某一个组件上去。接下来我们要完成的就是菜单的路由转跳。

首先改写一下路由文件:

import Vue from 'vue'
import Router from 'vue-router'Vue.use(Router)export default new Router({routes:[{path:'/',redirect:'/login',component: ()=>import('@/components/Login')},{path:'/login',name:'Login',component: ()=>import('@/components/Login')},{path:'/home',name:'学生管理',iconClass:'fa fa-users',//默认转跳到学生管理页redirect:'/home/student',component: ()=>import('@/components/Home'),children:[{path:'/home/student',name:'学生列表',iconClass:'fa fa-list',component: ()=>import('@/components/students/StudentList'),},{path:'/home/info',name:'信息列表',iconClass:'fa fa-list-alt',component: ()=>import('@/components/students/InfoList'),},{path:'/home/info',name:'信息管理',iconClass:'fa fa-list-alt',component: ()=>import('@/components/students/InfoLists'),},{path:'/home/work',name:'作业列表',iconClass:'fa fa-list-ul',component: ()=>import('@/components/students/WorkList'),},{path:'/home/info',name:'作业管理',iconClass:'fa fa-list',component: ()=>import('@/components/students/WorkMent'),}]},{path:'/home/dataview',name:'数据分析',iconClass:'fa fa-bar-chart',component: ()=>import('@/components/Home'),children:[{path:'/home/dataview',name:'数据概览',iconClass:'fa fa-list',component: ()=>import('@/components/dataAnalysis/DataView'),},{path:'/home/mapview',name:'地图概览',iconClass:'fa fa-line-chart',component: ()=>import('@/components/dataAnalysis/DataView'),},{path:'/home/travel',name:'旅游地图',iconClass:'fa fa-line-chart',component: ()=>import('@/components/dataAnalysis/ScoreMap'),},{path:'/home/score',name:'分数地图',iconClass:'fa fa-line-chart',component: ()=>import('@/components/dataAnalysis/TravelMap'),}]},{path:'/users',name:'用户中心',iconClass:'fa fa-user',component: ()=>import('@/components/Home'),children:[{path:'/home/user',name:'用户概览',iconClass:'fa fa-list',component: ()=>import('@/components/users/User'),}]},{path:'*',name:'NotFound',component:()=>import('@/components/NotFound')}],mode:'history'
})

在menu中打印一下看能不能取到配置好的index.js的内容:

<script>
export default {data() {return {menus:[]};},created(){console.log(this.$router.options.routes);}
};
</script>

可以看到是有数据的,有数据那就很好办了:

去遍历菜单把数据取出来,绑定到菜单栏上去即可:

<template><div class="menu"><el-aside width="200px"><el-menudefault-active="2"class="el-menu-vertical-demo"background-color="#2578b5"text-color="#fff"active-text-color="#ffd04b"><template v-for="(item,index) in  menus"><el-submenu :index="index + ''" :key="index"><template slot="title"><i class="el-icon-location"></i><span>{{item.name}}</span></template><el-menu-item-group><el-menu-item index="1-1">选项1</el-menu-item><el-menu-item index="1-2">选项2</el-menu-item></el-menu-item-group></el-submenu></template></el-menu></el-aside></div>
</template><script>
export default {data() {return {menus:[]};},created(){console.log(this.$router.options.routes);this.menus=[...this.$router.options.routes]}
};
</script>
<style lang="less" scoped>
.menu{.el-aside{height: 100%;.el-menu{height:100%;}.el-submenu .el-menu-item{min-width: 0;}}
}
</style>

可以看到已经取到我们配置的导航菜单了:

会发现还有一个问题,Login、用户中心、404页并不是我们想展示出来的,这里需要给菜单项加上一个是否隐藏的属性,在遍历时去判断该属性从而决定是不是要显示:

import Vue from 'vue'
import Router from 'vue-router'Vue.use(Router)export default new Router({routes:[{path:'/',redirect:'/login',hidden:true,component: ()=>import('@/components/Login')},{path:'/login',name:'Login',hidden:true,component: ()=>import('@/components/Login')},{path:'/home',name:'学生管理',iconClass:'fa fa-users',//默认转跳到学生管理页redirect:'/home/student',component: ()=>import('@/components/Home'),children:[{path:'/home/student',name:'学生列表',iconClass:'fa fa-list',component: ()=>import('@/components/students/StudentList'),},{path:'/home/info',name:'信息列表',iconClass:'fa fa-list-alt',component: ()=>import('@/components/students/InfoList'),},{path:'/home/info',name:'信息管理',iconClass:'fa fa-list-alt',component: ()=>import('@/components/students/InfoLists'),},{path:'/home/work',name:'作业列表',iconClass:'fa fa-list-ul',component: ()=>import('@/components/students/WorkList'),},{path:'/home/info',name:'作业管理',iconClass:'fa fa-list',component: ()=>import('@/components/students/WorkMent'),}]},{path:'/home/dataview',name:'数据分析',iconClass:'fa fa-bar-chart',component: ()=>import('@/components/Home'),children:[{path:'/home/dataview',name:'数据概览',iconClass:'fa fa-list',component: ()=>import('@/components/dataAnalysis/DataView'),},{path:'/home/mapview',name:'地图概览',iconClass:'fa fa-line-chart',component: ()=>import('@/components/dataAnalysis/DataView'),},{path:'/home/travel',name:'旅游地图',iconClass:'fa fa-line-chart',component: ()=>import('@/components/dataAnalysis/ScoreMap'),},{path:'/home/score',name:'分数地图',iconClass:'fa fa-line-chart',component: ()=>import('@/components/dataAnalysis/TravelMap'),}]},{path:'/users',name:'用户中心',iconClass:'fa fa-user',component: ()=>import('@/components/Home'),children:[{path:'/home/user',name:'用户概览',iconClass:'fa fa-list',component: ()=>import('@/components/users/User'),}]},{path:'*',name:'NotFound',hidden:true,component:()=>import('@/components/NotFound')}],mode:'history'
})
<template><div class="menu"><el-aside width="200px"><el-menudefault-active="2"class="el-menu-vertical-demo"background-color="#2578b5"text-color="#fff"active-text-color="#ffd04b"><template v-for="(item,index) in  menus"><el-submenu :index="index + ''" :key="index" v-if="!item.hidden"><template slot="title"><i class="el-icon-location"></i><span>{{item.name}}</span></template><el-menu-item-group><el-menu-item index="1-1">选项1</el-menu-item><el-menu-item index="1-2">选项2</el-menu-item></el-menu-item-group></el-submenu></template></el-menu></el-aside></div>
</template><script>
export default {data() {return {menus:[]};},created(){console.log(this.$router.options.routes);this.menus=[...this.$router.options.routes]}
};
</script>
<style lang="less" scoped>
.menu{.el-aside{height: 100%;.el-menu{height:100%;}.el-submenu .el-menu-item{min-width: 0;}}
}
</style>

效果:

把二级菜单一起调整出来:

<template><div class="menu"><el-aside width="200px"><el-menudefault-active="2"class="el-menu-vertical-demo"background-color="#2578b5"text-color="#fff"active-text-color="#ffd04b"><template v-for="(item,index) in  menus"><el-submenu :index="index + ''" :key="index" v-if="!item.hidden"><template slot="title"><i :class="item.iconClass"></i><span>{{item.name}}</span></template><el-menu-item-group v-for="(child,index) in item.children" :key="index"><el-menu-item :index="child.path"><i :class="child.iconClass">{{child.name}}</i></el-menu-item></el-menu-item-group></el-submenu></template></el-menu></el-aside></div>
</template><script>
export default {data() {return {menus:[]};},created(){console.log(this.$router.options.routes);this.menus=[...this.$router.options.routes]}
};
</script>
<style lang="less" scoped>
.menu{.el-aside{height: 100%;.el-menu{height:100%;.fa{margin-right: 10px;}}.el-submenu .el-menu-item{min-width: 0;}}
}
</style>

5.2.2.开启路由功能

先给meun组件上的elementUI的导航栏开启路由功能,这样点击导航栏,路径才会对应转跳:

<el-menurouterdefault-active="2"class="el-menu-vertical-demo"background-color="#2578b5"text-color="#fff"active-text-color="#ffd04b">

然后在home上给出路由出口:

<template><div class="home"><Header/><el-container class="content"><Menu/><el-container><el-main><router-view></router-view></el-main><el-footer><Footer/></el-footer></el-container></el-container></div>
</template>

可以看到路由可以正常工作了:

6.面包屑导航

整个首页的架子已经搭好了,也完成了菜单的转跳,但是还差个细节就是面包屑导航栏:

去elementUI官网上找一个面包屑的导航组件:

在common下面新建一个面包屑组件,调整一下官网上扣下来的内容,使得其可以取到我们真实菜单的内容:

Home里面引入使用一下即可:

<template><div class="home"><Header/><el-container class="content"><Menu/><el-container><el-main><Breadcrumb/><router-view></router-view></el-main><el-footer><Footer/></el-footer></el-container></el-container></div>
</template><script>
import Footer from './common/Footer.vue'
import Header from './common/Header.vue'
import Menu from './common/Menu.vue'
import Breadcrumb from './common/Breadcrumb.vue'
export default {components:{Footer,Menu,Header,Breadcrumb},data(){return{}}
}
</script><style lang="less">
.home{width: 100%;height: 100%;.content{position: absolute;width: 100%;top: 60px;bottom: 0;}
}
</style>

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

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

相关文章

学习css过渡动画-transition

文章目录 前言transition属性语法宽度改变效果透明度改变效果位置改变效果如有启发&#xff0c;可点赞收藏哟~ 前言 通常&#xff0c;当一个元素的样式属性值发生变化时&#xff0c;会立即看到页面发生变化。 css属性transition能让页面元素不是立即的、而是慢慢的从一种状态变…

Flink1.17 DataStream API

目录 一.执行环境&#xff08;Execution Environment&#xff09; 1.1 创建执行环境 1.2 执行模式 1.3 触发程序执行 二.源算子&#xff08;Source&#xff09; 2.1 从集合中读取数据 2.2 从文件读取数据 2.3 从 RabbitMQ 中读取数据 2.4 从数据生成器读取数据 2.5 …

计算机毕业设计选题推荐-二手交易跳蚤市场微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

ubuntu下载conda

系统&#xff1a;Ubuntu18.04 &#xff08;1&#xff09;下载安装包 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Linux-x86_64.sh 报错错误 403&#xff1a;Forbidden 解决方法 wget -U NoSuchBrowser/1.0 https://mirrors.tuna.tsingh…

Smart Tomcat的使用

文章目录 Smart Tomcat的作用Smart Tomcat的安装Smart Tomcat的配置Smart Tomcat的启动 Smart Tomcat的作用 我们知道使用Servlet来完成一个项目一共需要七个步骤&#xff0c;即创建maven项目、添加依赖、创建目录结构、编写代码、打包程序、部署程序、验证程序。这样的确是完…

让资产权利归于建设者:Kiosk使过程变得更简单

区块链凭借着其将人的权利地位置于平台之上的能力&#xff0c;可以重塑互联网&#xff0c;而自托管为个人提供了控制和管理其资产和数据的能力。链上交易支持建设者和客户之间的点对点交易。这些特质联合起来&#xff0c;可以将数字世界从基于价值提取的模式转变为基于价值创造…

应用场景丨迭代市政综合管廊监测系统建设

市政综合管廊是指在城市地下建造的隧道空间&#xff0c;将市政、电力、通讯、燃气、给排水等各种管线集于一体&#xff0c;实施统一规划、设计、建设和管理。综合管廊有利于解决反复开挖路面、架空线网密集、管线事故频发等问题&#xff0c;是保障城市运行的重要基础设施和“生…

V10 桌面版、服务器版系统加固

V10 桌面版、服务器版系统加固 一、 文档说明 本文档中涉及的加固方法主要包括&#xff1a;密码策略配置、防火墙规 则配置、禁用高风险服务等。 二、 V10 桌面版系统加固 2.1 密码策略配置 密码策略包括密码老化控制策略和密码复杂度策略。密码老化 控制策略需要配置/etc…

【C++入门到精通】右值引用 | 完美转发 C++11 [ C++入门 ]

阅读导航 引言一、左值引用和右值引用1. 什么是左值&#xff1f;什么是左值引用&#xff1f;2. 什么是右值&#xff1f;什么是右值引用&#xff1f;3. move( )函数 二、左值引用与右值引用比较三、右值引用使用场景和意义四、完美转发std::forward 函数完美转发实际中的使用场景…

【LearnOpenGL基础入门——3】绘制纯色三角形

目录 一.写在前面 二.顶点输入 三.顶点着色器 四.编译着色器 五.片段着色器 六.着色器程序 七.链接顶点属性 彩蛋 一.写在前面 我们先认识一下OpenGL常用的几个名词&#xff1a; 顶点数组对象&#xff1a;Vertex Array Object&#xff0c;VAO顶点缓冲对象&#xff1a;…

2023全新付费进群系统源码 带定位完整版 附教程

这源码是我付费花钱买的分享给大家&#xff0c;功能完整。 搭建教程 Nginx1.2 PHP5.6-7.2均可 最好是7.2 第一步上传文件程序到网站根目录解压 第二步导入数据库&#xff08;58soho.cn.sql&#xff09; 第三步修改/config/database.php里面的数据库地址 第四步修改/conf…

linux配置固定ip(两种方法)

首先刚下载的vm&#xff0c;刚创建的虚拟机&#xff0c;肯定是需要配置ip的 其次以前我的每次都是设置自动ip&#xff0c;这样每次登录都会自动获取ip地址&#xff0c;并且每次的ip都不相同。 ~方法&#xff1a; 开机登陆后 1)Cd /etc/sysconfig/network-scripts 2)Vi ifcf…

Elasticsearch备份与还原:使用elasticdump

在数据管理的世界里&#xff0c;备份和还原数据是重中之重的日常工作&#xff0c;特别是对于Elasticsearch这样的强大而复杂的搜索引擎。备份不仅可以用于灾难恢复&#xff0c;还可以在数据迁移、测试或者升级等场景中发挥重要作用。 在本博客中&#xff0c;我们将会重点介绍如…

轻量级 Java 日志组件

日志记录功能在开发中很常用&#xff0c;不仅可以记录程序运行的细节&#xff0c;方便调试&#xff0c;也可以记录用户的行为&#xff0c;是框架中不可或缺的组件。为最大程度复用现有的组件&#xff0c;我们就地取材使用了 JDK 自带的 JUL&#xff08;java.util.logging&#…

聚观早报 |联想集团Q2财季业绩;小鹏汽车Q3营收

【聚观365】11月17日消息 联想集团Q2财季业绩 小鹏汽车Q3营收 微软发布两款自研AI芯片 FAA批准SpaceX再次发射星际飞船 2023 OPPO开发者大会 联想集团Q2财季业绩 全球数字经济领导企业联想集团公布截至2023年9月30日的2023/24财年第二财季业绩&#xff1a;整体营收达到10…

微信小程序H5 uniapp

最近微信小程序对有视频播放的审核严&#xff0c;需要提供“文娱类资质”。而申请这个资质比较繁琐。所以我们在小程序上用web-view做跳转到H5&#xff0c;H5使用uniapp编写。这是小程序关于web-view文档说明。https://developers.weixin.qq.com/miniprogram/dev/component/web…

硬件工程师基础能力课

第一课时--基本定理、电阻、电容等 首先了解下面几个概念&#xff0c;基尔霍夫定理&#xff1a;KCL & KVL&#xff0c;叠加定理&#xff0c;戴维南定理&#xff08;电压源等效&#xff09;和诺顿定理&#xff08;电流源等效&#xff09;、奈奎斯特采样定理。 上面说的这些东…

asp.net core EF Sqlserver

一、EF CORE的使用 1、使用NuGet来安装EF CORE 使用程序包管理器控制台&#xff0c;进行命令安装 //安装 Microsoft.EntityFrameworkCoreInstall-Package Microsoft.EntityFrameworkCore //安装 Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityF…

产品运营的场景和运营策略

一、启动屏 1&#xff0e;概念 启动屏&#xff0c;特指 APP 产品启动时即显示的界面&#xff0c;这个界面一般会停留几秒钟时间&#xff0c;在这个时间内 APP 会在后台加载服务框架、启动各种服务 SDK 、获取用户地理位置、判断有无新版本、判断用户账户状态以及其他系统级别的…

微机原理_12

一、单项选择题(本大题共15小题,每小题3分&#xff0c;共45分。在每小题给出的四个备选项中&#xff0c;选出一个正确的答案。〕 十进制正数56的 8位二进制补码是()。 A. 00011001 B. 10100110 C. 10011001 D. 00100110 若栈顶的物理地址为20100H&#xff0c;当执行完指令PUSH…