Vue开发

  • 搭建环境
    • node.js搭建
    • 安装vue
    • vue ui
    • 新建项目
  • 项目导入IDEA
  • 集成element-ui
  • 安装axios
  • 页面路由
    • 定义页面
      • 页面简单定义
    • 路由中心配置
  • 登录页面开发
    • 布局
    • 发起请求
      • 配置全局参数
  • 全局axios拦截
  • 博客列表
    • 公共组件Header
      • 构建Header组件
      • 头部用户信息
      • Header代码
      • 集成Header组件
  • 博客分页
    • views\Blogs.vue
  • 博客编辑(发表)
    • 安装mavon-editor
    • view\BlogEdit.vue
  • 博客详情
    • 安装插件
    • views\BlogDetail.vue
  • 路由权限拦截

搭建环境

node.js搭建

  • node.js官网(https://nodejs.org/zh-cn/),下载最新的长期版本,直接运行安装完成之后,即具备node和npm的环境
  • 下载完成后,在cmd 输入 node -v npm -v
    在这里插入图片描述

安装vue

在node.js的安装盘符

安装淘宝npm
npm install -g cnpm - -registry = https://registry.npm.taobao.org
vue-cli 安装依赖包
cnpm install - -g  vue-cli

分别安装了淘宝npm,cnpm是为了提高我们安装依赖的速度

vue ui

  • vue ui是@vue/cli3.0增加一个可视化项目管理工具,可以运行项目、打包项目,检查等操作

  • 在IDEA项目的部署目录(需要建立vue项目的地方)中,打开powerShell(按住shift再右击目录会显示在此打开power shell 或者在文件夹左上角点击文件,然后有以管理员身份运行powershell)

  • 注意在上一步下载的vue,在打开的powershell中执行 vue ui 无法打开可视化界面

    • vue -V发现为2.9.6版本,需要3X以上版本可以使用vue ui命令
    • npm uninstall vue-cli -g 删除现在已有的vue,再用 npm install -g @vue/cli 重新下载,
    • 再重新执行 vue ui 即可
  • 运行时依然报错如下,解决方法时再系统环境变量上添加发现是:用户变量的path没有配置C:\Windows\System32,添加即可
    在这里插入图片描述

在这里插入图片描述

  • 运行后依然报错,找不到应用程序
    -在这里插入图片描述

解决方法是重新安装Chrome谷歌浏览器,然后重新vue ui(可能是本地的浏览器不支持vue ui打开界面,重新安装chrome后,会弹出浏览器选择框,选择新安装的chrome浏览器即可)

新建项目

成功执行vue ui后 如下图所示
在这里插入图片描述

  • 创建—>再此创建新项目—>填写必要信息后—>下一步
    在这里插入图片描述
    选择手动配置项目
    在这里插入图片描述
    勾选上Router Vuex(可以选择去掉Linter/Formatter) 下一步
    在这里插入图片描述
    选择使用历史路由—>创建项目—>创建项目,不保存预设
    在这里插入图片描述

  • 创建项目后,为了方便开发,可以使用webstorm,vscode,也可以使用IDEA 只是需要给IDEA集成一个Vue.js插件(然后再重启IDEA),此处采用IDEA来进行开发

  • 项目创建完成后如下所示

  • 在这里插入图片描述

项目导入IDEA

在IDEA中 File导入该项目即可(已经集成插件的基础上)

  • /src/components 公共组件
  • /sec/router 前端路由
  • /src/views 路由跳转的view,页面目录
  • /src/store 组件可以监视store中的数据
  • App.vue

集成element-ui

  • 直接在IDEA中对项目进行布置

  • 引入element-ui组件(https://element.eleme.cn)可以获得好看的vue组件用以渲染数据,开发好看的博客界面

  • 注意安装命令均在IDEA的控制台Terminal执行

      # 切换到项目根目录cd vueblog-vue# 安装element-ui# 安装element-uicnpm install element-ui --save
    
  • 在main.js中引入elenment-ui

      打开项目src目录下的main.js,引入element-ui依赖import Element from 'element-ui'import "element-ui/lib/theme-chalk/index.css"Vue.use(Element)  //全局进行使用element-ui组件
    
  • 至此可以在官网上选择组件复制代码到我们项目中直接使用

  • 测试element-ui组件时,启动项目 ,发现组件成功渲染在页面时,即成功

    • 在控制台执行: npm run serve
    • 在Run/Debug Configurations 配置

安装axios

  • 基于promise的HTTP库,这个这个工具可以再前后端对接时大大提高开发效率

  • IDEA的控制台Terminal执

      cnpm install axios --save
    
  • main.js引入axios依赖

      打开项目src目录下的main.js,在main.js中全局引入axiosimport axios from 'axios'Vue.prototype.$axios = axios
    
  • 至此在组件中可以通过this.$axios.get()来发起请求

页面路由

定义页面

本项目由于页面较少,可以先定义好路由页面,在需要链接的地方就可以直接使用

  • 在views文件夹下定义几个页面(new component)
    • BlogDetail.vue(博客详情页)
    • BlogEdit.vue(编辑博客)
    • Blogs.vue(博客列表)
    • Login.vue(登录页面)
    • 删除掉原生的Home.vue

页面简单定义

  • .vue下template标签内只能放一个标签(入放一个< div>)

路由中心配置

  • 注意要先把上一步定义的几个.vue导入进index.js

router\index.js

	import Vue from 'vue'import VueRouter from 'vue-router'import Login from '../views/Login.vue'import BlogDetail from '../views/BlogDetail.vue'import BlogEdit from '../views/BlogEdit.vue'Vue.use(VueRouter)const routes = [{   path: '/',    name: 'Blogs',   redirect: { name: 'Blogs' }//主页面,重定向},{    path: '/login',    name: 'Login',   component: Login }, {   path: '/blogs', name: 'Blogs',   // 懒加载   component: () => import('../views/Blogs.vue')  }, {   path: '/blog/add', // 注意放在 path: '/blog/:blogId'之前 name: 'BlogAdd', meta: {     requireAuth: true },  component: BlogEdit  },{ path: '/blog/:blogId',  name: 'BlogDetail',  //显示某篇博客详情,需要id  component: BlogDetail }, { path: '/blog/:blogId/edit',  //需要制定修改哪一个blog故需要传递id name: 'BlogEdit',   meta: {    requireAuth: true }, component: BlogEdit}];const router = new VueRouter({mode: 'history', base: process.env.BASE_URL,  routes})export default router
  • 带有meta:requireAuth: true说明是需要登录字后才能访问的受限资源
  • 注意路由的顺序严格要求,例如把path: '/blog/:blogId’这个路由放在path: '/blog/add’之前,则访问blog/add可能路由到/blog/:blogId,则不会进入add

登录页面开发

布局

  • 在element-ui中 Container(布局容器),有许多布局样式
  • 选择常见的三项布局,将其代码放入login.vue的< template>标签中,(将附带的一些样式拷进< script> 中)
  • 在element-ui找到布局表单Form控件,找到一个有表单校验规则控件,修改一下,只留下两个输入框和一个提交按钮(注意同时修改校验规则)

views/Login.vue

  • 表单校验(固定写法)

  • 登录按钮的点击登录事件

      < template>< div><el-container>//el-header是el-container的头部区域<el-header><img class="mlogo" src="xxxxx" alt=""></el-header><el-main><el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"><el-form-item label="用户名" prop="username"><el-input v-model="ruleForm.username"></el-input></el-form-item><el-form-item label="密码" prop="password"><el-input type="password" v-model="ruleForm.password"></el-input></el-form-item><el-form-item><el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button><el-button @click="resetForm('ruleForm')">重置</el-button></el-form-item></el-form></el-main></el-container>		< /div>< /template>
    

< script>

<  script>export default {name: "Login",data() {return {ruleForm: {username: 'markerhub',password: '111111'},rules: {username: [//提示信息{ required: true, message: '请输入用户名', trigger: 'blur' },//表单验证{ min: 3, max: 15, message: '长度在 3 到 15 个字符', trigger: 'blur' }],password: [{ required: true, message: '请选择密码', trigger: 'change' }]}};},methods: {submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {const _this = thisthis.$axios.post('/login', this.ruleForm).then(res => {console.log(res.data)const jwt = res.headers['authorization']const userInfo = res.data.data// 把数据共享出去,存入/strore/index.js_this.$store.commit("SET_TOKEN", jwt)_this.$store.commit("SET_USERINFO", userInfo)// 获取console.log(_this.$store.getters.getUser)_this.$router.push("/blogs")})} else {console.log('error submit!!');return false;}});},resetForm(formName) {this.$refs[formName].resetFields();}}}
</script>

< style>

		<style scoped>.el-header, .el-footer {background-color: #B3C0D1;color: #333;text-align: center;line-height: 60px;}.el-aside {background-color: #D3DCE6;color: #333;text-align: center;line-height: 200px;}.el-main {/*background-color: #E9EEF3;*/color: #333;text-align: center;line-height: 160px;}body > .el-container {margin-bottom: 40px;}.el-container:nth-child(5) .el-aside,.el-container:nth-child(6) .el-aside {line-height: 260px;}.el-container:nth-child(7) .el-aside {line-height: 320px;}.mlogo {height: 60%;margin-top: 10px;}.demo-ruleForm {max-width: 500px;margin: 0 auto;}</style>

发起请求

  • 将表单的数据提交给后端,由后端进行校验返回jwt(token)
  • 以前通过ajax发起异步请求,在Vue中采用基于promise的axios

views/Login.vue的提交表单方法

	submitForm(formName) { this.$ refs[formName].validate((valid) => {  if (valid) { const _this = this//发起axios请求后,后面的this代表的是该请求的this,想要调用index.js中定义的全局参数必须先预存该代表整个vue项目的this// 提交逻辑            //注意,此处的post请求括号内指令前的URL在axios中定义了,此处会自动加上,避免硬编码this.$axios.post(‘/login', this.ruleForm).then((res)=>{             const token = res.headers['authorization']   //发起请求后的结果需要赋给//登陆成功还会返回用户信息通过res.data.data获取//传统项目token是放在cookie中的,vue项目一般会放在localstorage中  //Vue项目时单页面项目SPA(改变路由时不会刷新整个页面,而是刷新App.vue中<router-view/>中的内容)//因此多组件的SPA保证都能获取如Jwt,则需要配置到全局参数//获取参数_this.$store.commit('SET_TOKEN', token)       _this.$store.commit('SET_USERINFO', res.data.data)        //跳转页面    _this.$router.push("/blogs")     })      } else {        console.log('error submit!!');          return false;    }    });  },

配置全局参数

  • 进行token等数据状态同步,存储token,用localStorage;存储用户信息用sessionStorage
  • localStorage,sessionStoraage在页面上

store/index.js

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({state: {   token: '', userInfo: JSON.parse(sessionStorage.getItem("userInfo")) },mutations: {    //类似于java bean的setter方法//第一个参数上面定义,第二个为传入的值SET_TOKEN: (state, token) => {    state.token = token     //赋值后存到localStorage,浏览器关闭后仍保存一段时间localStorage.setItem("token", token) },SET_USERINFO: (state, userInfo) => {      state.userInfo = userInfo  //sessionStorage不能存储对象,只能存字符串之类的值sessionStorage.setItem("userInfo", JSON.stringify(userInfo))  },//调用remove方法删除掉localStorage,sessionStorage中的数据REMOVE_INFO: (state) => {    	localStorage.setItem("token", '')      		 sessionStorage.setItem("userInfo", JSON.stringify(''))      	state.userInfo = {}   }},//初始化时直接从sessionStorage中获取(拿到的是序列化的字符串,需要反序列化)getters: { getUser: state => {      return state.userInfo    } },
}
actions: {},modules: {}
})
  • 完成上述配置后,输入用户名密码正确时会跳转到博客界面,但是输入错误时却不会由弹窗提示
  • 此时需要一个全局处理登录异常,可以弹窗提示
  • 做一个全局axios拦截对登陆错误的结果进行弹窗处理

全局axios拦截

  • 对axios做了个后置拦截器,就是返回数据时候,如果结果的code或者status不正常,由对应弹窗提示

  • src目录下创建一个文件axios.js(与main.js同级),定义axios的拦截,需要在main.js 导入

       import axios from 'axios'import Element from "element-ui";import store from "./store";import router from "./router";//将域名:端口定义成常量,避免硬编码,axios.defaults.baseURL='http://localhost:8081'//前置拦截,axios.interceptors.request.use(config => {console.log("前置拦截")// 可以统一设置请求头 return config})//后置拦截axios.interceptors.response.use(response => {    const res = response.data;   console.log("后置拦截")//注意这里是采用了http的状态码  // 当结果的code是否为200的情况  if (res.code === 200) {    return response  } else {// 弹窗异常信息   //element-ui的一个组件,要在上方先导入依赖Element.Message({//弹窗信息message: response.data.msg,  type: 'error',//弹窗过期时间   duration: 2 * 1000    })// 直接拒绝往下面返回结果信息 (不再执行login.vue中后续的逻辑)   return Promise.reject(response.data.msg)  }},error => {    console.log('err' + error)// for debug  if(error.response.data) {     error.message = error.response.data.msg }// 根据请求状态觉得是否登录或者提示其他if(error.response.status= =401 ){store.commit('REMOVE_INFO');//跳转到登陆页面router.push({      path: '/login'   });error.message = '请重新登录';}if (error.response.status = = 403) {     error.message = '权限不足,无法访问';}Element.Message({    message: error.message,type: 'error',duration: 3 * 1000})return Promise.reject(error)})
    
  • 编写完axios.js,再往main.js中导入axios.js

博客列表

公共组件Header

  • 登录完成之后直接进入博客列表页面,然后加载博客列表的数据渲染出来
  • 同时页面头部我们需要把用户的信息展示出来,很多地方都用到这个模块,把页面头部的用户信息单独抽取出来作为一个组件

构建Header组件

首先在/src新建一个目录components,新建一个Header.vue

头部用户信息

头部的用户信息,应该包含三部分信息:id,头像、用户名,而这些信息在登录之后就已经存在了sessionStorage。可以通过store的getters获取到用户信息

Header代码

  • created()中初始化用户的信息

  • 通过hasLogin的状态来控制登录和退出按钮的切换,以及发表文章链接的disabled,这样用户的信息就能展示出来了(发表文章这个控件绑定了url指向/blog/add)

  • 退出按钮,在methods中有个logout()方法,直接访问/logout(因为之前axios.js中已经设置axios请求的baseURL,不再需要链接的前缀),清除掉srore中的数据,并跳转到登陆页面

    -为什么退出仍然要 this.$axios.get(‘http://localhost:8081/logout’?在AccountController中的logout要将当前角色退出shiro

  • 登录之后才能访问的受限资源,所以在header中带上了Authorization。返回结果清除store中的用户信息和token信息,跳转到登录页面
    在这里插入图片描述
    < template>

      <template><div class="m-content"><h3>欢迎来到MarkerHub的博客</h3><div class="block">//el的头像组件<el-avatar :size="50" :src="user.avatar"></el-avatar><div>{{ user.username }}</div></div><div class="maction">// el-link标签<span><el-link href="/blogs">主页</el-link></span><el-divider direction="vertical"></el-divider><span><el-link type="success" href="/blog/add">发表博客</el-link></span><el-divider direction="vertical"></el-divider><span v-show="!hasLogin"><el-link type="primary" href="/login">登录</el-link></span><span v-show="hasLogin"><el-link type="danger" @click="logout">退出</el-link></span></div></div></template>
    

< script>

		<script>export default {name: "Header",data() {return {user: {username: '请先登录',avatar: 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png'},hasLogin: false}},methods: {logout() {const _this = this_this.$axios.get("/logout", {headers: {"Authorization": localStorage.getItem("token")}}).then(res => {_this.$store.commit("REMOVE_INFO")_this.$router.push("/login")})}},created() {if(this.$store.getters.getUser.username) {this.user.username = this.$store.getters.getUser.usernamethis.user.avatar = this.$store.getters.getUser.avatarthis.hasLogin = true}}}</script>

< syle>

	<style scoped>.m-content {max-width: 960px;margin: 0 auto;text-align: center;}.maction {margin: 10px 0;}</style>

集成Header组件

import Header from "@/components/Header";
data() {components: {Header}}
}
# 然后模板中调用组件
<Header></Header>

博客分页

  • 列表页面,需要做分页,列表我们在element-ui中直接使用时间线组件来作为我们列表样式和分页组件
  • 需要几部分信息
    • 分页信息
    • 博客列表内容,包括id、标题、摘要、创建时间

views\Blogs.vue

  • data()中直接定义博客列表blogs、以及一些分页信息
  • methods()中定义分页的调用接口page(currentPage),参数是需要调整的页码currentPage,得到结果之后直接赋值即可
  • 初始化时候,直接在mounted()方法中调用第一页this.page(1)
  • 注意标题这里我们添加了链接,使用的是标签
  • < el-card>展示了每个标签的内容会展示博客名字,同时有个超链接指向具体的博客详情(需要传递参数blog的id)

< template>

	<template><div class="mcontaner"><Header></Header><div class="block"><el-timeline><el-timeline-item :timestamp="blog.created" placement="top" v-for="blog in blogs">//卡片组建用于展示分页上的博客信息,如下用标题形式展示了博客的id等<el-card><h4><router-link :to="{name: 'BlogDetail', params: {blogId: blog.id}}">{{blog.title}}</router-link></h4><p>{{blog.description}}</p></el-card></el-timeline-item></el-timeline><el-pagination class="mpage"backgroundlayout="prev, pager, next":current-page="currentPage":page-size="pageSize":total="total"@current-change=page></el-pagination></div></div></template>

< script>

	<script>import Header from "../components/Header";export default {name: "Blogs.vue",components: {Header},data() {return {blogs: {},//传给pagination分页插件的参数currentPage: 1,total: 0,pageSize: 5}},methods: {page(currentPage) {const _this = this_this.$axios.get("/blogs?currentPage=" + currentPage).then(res => {console.log(res)_this.blogs = res.data.data.records_this.currentPage = res.data.data.current_this.total = res.data.data.total_this.pageSize = res.data.data.size})}},created() {this.page(1)}}</script>

< style>

	< style scoped>.mpage {margin: 0 auto;text-align: center;}</style>

博客编辑(发表)

  • 在博客(展示页面)页面,点击header上的发表文章(页面路由)跳转到博客编辑页面
  • 点击击发表博客链接调整到/blog/add页面,需要用到一个markdown编辑器,在vue组件中,比较好用的是mavon-editor,先来安装mavon-editor相关组件

安装mavon-editor

  • 基于Vue的markdown编辑器mavon-editor

      cnpm install mavon-editor --save
    
  • 在main.js中全局注册

      // 全局注册import Vue from 'vue'import mavonEditor from 'mavon-editor'import 'mavon-editor/dist/css/index.css'// useVue.use(mavonEditor)
    

view\BlogEdit.vue

  • 校验表单,然后点击按钮提交表单,注意头部加上Authorization信息,返回结果弹窗提示操作成功,然后跳转到博客列表页面

  • 编辑和添加是同一个页面,所以有了create()(在内容开始渲染时就开始)方法,比如从编辑连接/blog/7/edit中获取blogId为7的这个id。然后回显博客信息。获取方式是const blogId = this.$route.params.blogId

  • mavon-editor因为已经全局注册,所以我们直接使用组件即可

      <mavon-editor v-model="editForm.content">
    

在这里插入图片描述
< template>

		< template><div><Header></Header><div class="m-content"><el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"><el-form-item label="标题" prop="title"><el-input v-model="ruleForm.title"></el-input></el-form-item><el-form-item label="摘要" prop="description"><el-input type="textarea" v-model="ruleForm.description"></el-input></el-form-item><el-form-item label="内容" prop="content"><mavon-editor v-model="ruleForm.content"></mavon-editor></el-form-item><el-form-item><el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button><el-button @click="resetForm('ruleForm')">重置</el-button></el-form-item></el-form></div></div></template>

< script>

		<script>import Header from "../components/Header";export default {name: "BlogEdit.vue",components: {Header},data() {return {//做每一个输入框的数据验证ruleForm: {id: '',title: '',description: '',content: ''},rules: {title: [//做每一个输入框的输入提示{ required: true, message: '请输入标题', trigger: 'blur' },{ min: 3, max: 25, message: '长度在 3 到 25 个字符', trigger: 'blur' }],description: [{ required: true, message: '请输入摘要', trigger: 'blur' }],content: [{ trequired: true, message: '请输入内容', trigger: 'blur' }]}};},methods: {submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {const _this = thisthis.$axios.post('/blog/edit', this.ruleForm, {headers: {"Authorization": localStorage.getItem("token")}}).then(res => {console.log(res)_this.$alert('操作成功', '提示', {confirmButtonText: '确定',callback: action => {_this.$router.push("/blogs")}});})} else {console.log('error submit!!');return false;}});},resetForm(formName) {this.$refs[formName].resetFields();}},created() {//拿到blog idconst blogId = this.$route.params.blogIdconsole.log(blogId)const _this = thisif(blogId) {//发送ajax请求,获得进行查询拿到blodid对于的blog内容,	    //生命周期函数在加载后拿到id发送ajax请求将得到的博客内容展示在页面上行this.$axios.get('/blog/' + blogId).then(res => {const blog = res.data.data_this.ruleForm.id = blog.id_this.ruleForm.title = blog.title_this.ruleForm.description = blog.description_this.ruleForm.content = blog.content})}}}</script>

< Script>

博客详情

  • 博客详情中需要回显博客信息,
  • 后端传过来的是博客内容是markdown格式的内容,需要进行渲染然后显示出来,使用一个插件markdown-it,用于解析md文档,然后导入github-markdown-c,所谓md的样式

安装插件

  • 用于解析md文档
    • cnpm install markdown-it --save
  • md样式
    • cnpm install github-markdown-css

然后就可以在需要渲染的地方使用

views\BlogDetail.vue

  • 初始化create()方法中调用getBlog()方法,请求博客详情接口
  • 返回的博客详情content通过markdown-it工具进行渲染
  • 导入样式 import ‘github-markdown.css’
  • 在content的div中添加class为markdown-body
  • 另外标题下添加了个小小的编辑按钮,通过ownBlog (判断博文作者与登录用户是否同一人)来判断按钮是否显示出来

在这里插入图片描述
< template>

		<template><div><Header></Header><div class="mblog"><h2> {{ blog.title }}</h2><el-link icon="el-icon-edit" v-if="ownBlog"><router-link :to="{name: 'BlogEdit', params: {blogId: blog.id}}" >编辑</router-link></el-link><el-divider></el-divider><div class="markdown-body" v-html="blog.content"></div></div></div></template>

< script>

	<script>import 'github-markdown-css'import Header from "../components/Header";export default {name: "BlogDetail.vue",components: {Header},data() {return {blog: {id: "",title: "",content: ""},ownBlog: false}},created() {const blogId = this.$route.params.blogIdconsole.log(blogId)const _this = thisthis.$axios.get('/blog/' + blogId).then(res => {const blog = res.data.data_this.blog.id = blog.id_this.blog.title = blog.titlevar MardownIt = require("markdown-it")var md = new MardownIt()var result = md.render(blog.content)_this.blog.content = result_this.ownBlog = (blog.userId === _this.$store.getters.getUser.id)})}}</script>

< style>

		<style scoped>.mblog {box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);width: 100%;min-height: 700px;padding: 20px 15px;}</style>

路由权限拦截

  • 页面已经开发完毕之后,控制一下哪些页面是需要登录之后才能跳转的

  • 如果未登录访问就直接重定向到登录页面

  • 在src目录下定义一个js文件:src\permission.js

      import router from "./router";// 路由判断登录 根据路由配置文件的参数router.beforeEach((to, from, next) => { if (to.matched.some(record =>record.meta.requireAuth)) { // 判断该路由是否需要登录权限    const token = localStorage.getItem("token")    console.log("------------" + token)   if (token) { // 判断当前的token是否存在 ;登录存入的token     if (to.path === '/login') {} else { next()   }  } else {   next({   path: '/login'    }) }} else {next()  }
    })在定义页面路由时候的meta信息,指定requireAuth: true,需要登录才能访问在每次路由之前(router.beforeEach)判断token的状态,觉得是否需要跳转到登录页面
    
  • 再在main.js中import我们的permission.js

    • import ‘./permission.js’ // 路由拦截
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 每天一个脱发小技巧 | Eclipse环境下spotbugs的安装配置和详细使用方法

    SpotBugs介绍 SpotBugs是一个使用静态分析来查找Java代码中的bug的程序,对于初学者而言,SpotBugs是一个非常好的提高代码质量的工具,我们可以通过SpotBugs发现自己编程过程中的漏洞,提高编程水平。SpotBugs需要JRE(或JDK) 1.8.0或更高版本才能运行。但是,它可以分析为任何…...

    2024/4/24 14:05:37
  2. js学习之变量学习

    <html><head><title>js的变量学习</title><meta charset="UTF-8"/><!--js的变量声明学习:1、js中的所有变量声明只有var关键字。var a=123;var A=1234;var a1=3.1415926;var a2="js";var a3=k;var a4=true;var a5=new D…...

    2024/4/24 14:05:36
  3. 打印沙漏的函数⏳

    输出由奇数组成的⏳ void print(int n,char c) {int i,j,k; for(i=n;i>=1;i=i-2) \\控制奇数,打印上半部分 {for(k=0;k<n-i;k+=2) printf(" "); \\由变量i的变化设计出空格输出的算法 for(j=1;j<=i;j++) printf("*"); printf("\n");}…...

    2024/4/24 14:05:35
  4. java 多线程(商品进货销售)

    题目: 利用线程通知机制编写一个Java多线程程序,模拟商店对某件商品的进货与销售过程并将相关信息打印出来,具体要求如下: 进货与销售过程各由一个线程模拟;当商品数目少于10时进货,进货数目随机生成但不少于50;销售数目随机生成,数目不大于商品数量;2次销售之间的时间随机生成…...

    2024/4/24 14:05:35
  5. 【OpenCV:从零到一】08:模糊图像(滤波器)

    前言 这是我《OpenCV:从零到一》专栏的第八篇博客,想看跟多请戳这。 本文概要线性滤波器方框滤波 均值滤波 高斯滤波非线性滤波器中值滤波 双边滤波案例代码 大概内容:各种滤波 。 #include <opencv2/opencv.hpp> #include <iostream> using namespace cv;in…...

    2024/4/24 14:05:33
  6. Linux学习目录(超详细)

    Linux学习目录(超详细)...

    2024/4/24 14:05:33
  7. VSCode中配置CMake,通过CMake断点调试程序

    第一步:1.引入make在VSCode中编写C++程序,只能编译一个源文件,如果需要同时编译多个源文件,那么就需要批处理工具——CMake工具或者Clion(专业的); make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式——通过调用makefi…...

    2024/4/24 14:05:32
  8. OpenCV+Python 让你的朋友出现在《法制进行时》

    文章目录项目说明实现步骤Python 实现1、导入需要的库2、绘图函数3、前景图片3.1 导入前景图片3.2 选中前景图片中的四个顶点4、背景图片4.1 导入背景图片4.2 选取背景图片中要嵌入前景图片区域的四个顶点4.3 将顶点坐标写成前景图片顶点坐标的形式5、透视变换5.1 计算单应性矩…...

    2024/4/24 14:05:31
  9. 利用pickle序列化,进行socket通信

    socket通信 socket通信只能传输二进制数据,每次接受到数据,都需要进行字符串的切割,判断之类的操作。 于是,想到了使用pickle模块提供的序列化和反序列化的功能,来传输一个对象,比如字典。 序列化和反序列化 就是把python中的对象,按照特定的格式,转换为二进制数据,写…...

    2024/4/27 21:46:12
  10. 成功申请注册谷歌Gmail,遇到手机号无法验证问题已解决

    注册谷歌号真难,跳不过手机验证,翻遍了知乎和各大网站的帖子,发现都没什么用,看的眼睛都疼了,我终于注册成功啦!看到可以通过谷歌的手机号验证,真激动!太难了,谷歌邮箱无法验证问题困扰了我一天特此发布在csdn上留念。...

    2024/4/24 14:05:29
  11. Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡

    半年前用经费买的ZYNQ开发板,最近才派上用场。最近正在进行的一些工作需要用到它(没错就是那个离线式数字信号处理系列的),今天来写第一个程序,准备一下后面的数据采集操作。 使用官方给的Example来测试SD卡的读写。首先打开Vivado,在这里我使用的版本是2019.1,属于比较…...

    2024/4/28 1:50:28
  12. C#中虚拟方法和抽象方法的区别,一起研究研究?

    前言:在前面的文章中,我们已经对虚方法和抽象方法有了了解,那么本博文将阐述它们之间的区别,一起来看看吧。 文章目录:一.在定义上:二.在实现上:三.在作用上:四.使用场景: 一.在定义上: 虚方法用关键字virtual来进行声明,不允许再有static,abstract,或override修饰符 访问修饰符…...

    2024/4/27 18:38:29
  13. Visual Studio安装以及增加工具集C盘占用问题

    最近在使用vs2017增加C++工具集的时候发现这个软件真的是太大了,一个工具集动一下十几G的来,可伶我的c盘很小,实在承受不住,在多次试验后找了个委婉的解决方式。在此记录给需要帮助的人以及给自己记录一下。一、如何安装vs就不说了。针对第一次安装vs的来说呢,首先当你下载…...

    2024/4/16 15:54:42
  14. ElasticSearch使用篇 - Query and filter context

    Query and filter context 查询从句的行为依赖于它是用在查询上下文还是过滤上下文。 Query context 一个用在查询上下文的查询从句回答这样的问题:“这个文档匹配这个查询从句的程度是怎么样?”除了文档是否匹配以外,查询从句计算分值,这个分值是表示与其他文档相比,这个…...

    2024/4/15 3:25:40
  15. dd

    动态文字,保持平衡,flag...

    2024/4/20 16:27:05
  16. Mooc项目开发笔记(二):讲师模块配置、代码生成、框架运行测试

    一、讲师管理模块配置 1、在service下面service-edu模块中创建配置文件 将resources目录设置为resources目录类型将java目录设置为source目录类型resources目录下创建文件 application.properties # 服务端口 server.port=8001 # 服务名 spring.application.name=service-edu# …...

    2024/4/15 3:25:38
  17. day04_python语法

    1.数据类型 不可变类型:字符串 数字 元组 可变类型: 列表 字典 集合 不可变数据类型,如果改变值,内存地址会修改 可变数据类型,如果修改值,内存地址不会发生改变 2.列表的复制copy方法复制的新列表与源列表内容一样,但是指向不同的内存空间copy内置模块import copy a = c…...

    2024/4/24 14:05:30
  18. 图片懒加载

    html 结构<div class="container"><div class="img-area"><img class="my-photo" alt="loading" data-src="./img/img1.png"></div><div class="img-area"><img class="my…...

    2024/4/24 14:05:24
  19. 美团/力扣(647)--回文字串

    美团/力扣(647)–回文字串 文章目录美团/力扣(647)--回文字串一、题目描述二、分析方法一:中心扩散代码一:方法二:DP代码二: 一、题目描述 力扣:美团:兄弟们!刷题的重要性!!! 二、分析 方法一:中心扩散从开始每个字符进行判断,回文串字符个数可能为奇数或偶数如果是…...

    2024/4/26 6:51:25
  20. 你是第一个说,创业不难的

    亲爱的学员,欢迎来到子桓私塾! 一位从腾讯出来的创业者,对我说:“你是第一个,说创业不难的。”这是2018年的时候,一位腾讯出来的小伙伴说的。 创业真的不难吗?今天和大家聊一聊。 创业,是一种生活方式。也可以是一种谋生的手段,还可以是一种追求。 只要是真正创业过的…...

    2024/4/24 14:05:22

最新文章

  1. 【03】JAVASE-分支语句【从零开始学JAVA】

    Java零基础系列课程-JavaSE基础篇 Lecture&#xff1a;波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。…...

    2024/4/28 2:41:32
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. audio_video_img图片音视频异步可视化加载

    最近在做即时消息&#xff0c;消息类型除了文字还有音频、视频、图片展示&#xff0c;如果消息很多&#xff0c;在切换聊天框时&#xff0c;会有明显卡顿&#xff0c;后续做了懒加载&#xff0c;方案是只加载用户能看到的资源&#xff0c;看不到的先不加载&#xff1b; LazyAud…...

    2024/4/27 13:10:31
  4. llama.cpp运行qwen0.5B

    编译llama.cp 参考 下载模型 05b模型下载 转化模型 创建虚拟环境 conda create --prefixD:\miniconda3\envs\llamacpp python3.10 conda activate D:\miniconda3\envs\llamacpp安装所需要的包 cd G:\Cpp\llama.cpp-master pip install -r requirements.txt python conver…...

    2024/4/26 8:21:14
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/26 20:12:18
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57