摘要: 1,在服务器中安装 pm2:npm i pm2 -g 2,启动项目:pm2 start app.js --name web_vue_admin 3,查看运行项目:pm2 ls 4,重启项目:pm2 restart web_vue_admin 5,停止项目:pm2 stop web_vue_admin 阅读全文
posted @ 2021-01-30 19:30 shanlu 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 当需要把某种模式匹配到的所有路由,全部映射到同一个组件时,需要用到动态路由匹配,即在 vue-router 的路由路径中使用“动态路由参数” 来达到这个效果 例如,定义一个 User 组件,对于所有 username 各不相同的用户,都要使用这个组件来渲染 router.js import Vue 阅读全文
posted @ 2021-01-30 19:28 shanlu 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 1,路由对象出现在多个地方: ① 在组件内,this.$route ② 在 $route 观察者回调内 ③ router.match(location) 的返回值 ④ 路由守卫的参数 ⑤ scrollBehavior 方法的参数 2,路由对象属性 ① $route.path,字符串类型,对应当前路由 阅读全文
posted @ 2021-01-30 19:26 shanlu 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 可以在创建Router实例的时候,在 routes 配置中给某个路由设置名称,通过一个名称来标识一个路由显得更方便一些,特别是在链接一个路由,或者是执行一些跳转的时候 要链接到一个命名路由,可以给 router-link 的 to 属性传一个对象 和代码调用 router.push 一样 route 阅读全文
posted @ 2021-01-30 19:25 shanlu 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 重定向也是通过 routes 配置完成,如,从 /user/userA 重定向到 /user/userB 当用户访问 /user/userA 时,URL将会被替换成 /user/userB,然后匹配路由为 /user/userB 重定向的目标也可以是一个命名的路由: { path : 'userA' 阅读全文
posted @ 2021-01-30 19:23 shanlu 阅读(80) 评论(0) 推荐(1) 编辑
摘要: “导航” 表示路由正在发生变化 vue-router 提供的导航守卫,主要用来通过跳转或取消的方式守卫导航。 参数或查询的改变并不会触发进入 / 离开的导航守卫。 全局前置守卫 可以使用 router.beforeEach 注册一个全局前置守卫 当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是 阅读全文
posted @ 2021-01-30 19:22 shanlu 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 定义路由的时候可以配置 meta 字段 如何访问 meta 字段: ① routes 配置中的每个路由对象为路由记录,路由记录可以是嵌套的,因此,当一个路由匹配成功后,可以匹配的是多条路由记录(包含父路由记录以及子路由记录) ② 一个路由匹配到的所有路由记录会暴露为 $route 对象的 $rout 阅读全文
posted @ 2021-01-30 19:21 shanlu 阅读(79) 评论(0) 推荐(0) 编辑
摘要: <router-view> 是基本的动态组件,所以可以用 <transition> 组件给它添加一些过渡效果 单个路由的过渡 若希望给每个路由组件设置各自的过渡效果,可以在各组件内使用 <transition> 并设置不同的 name 基于路由的动态过渡 可以基于当前路由与目标路由的变化关系,动态设 阅读全文
posted @ 2021-01-30 19:20 shanlu 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 有时,进入某个路由之后,需要从服务器获取数据,可以通过两种方式实现: 1,导航完成之后获取 ① 先完成导航,然后在接下来的组件的生命周期钩子函数中获取数据,在数据获取期间显示“加载中” 之类的指示 ② 当使用这种方式时,我们会马上导航和渲染组件,然后在组件的 created 钩子中获取数据,这样我们 阅读全文
posted @ 2021-01-30 19:18 shanlu 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 当切换到新路由时,若希望页面滚动到顶部,或者是保持原先的滚动位置,就像重新加载页面一样,vue-router 可以自定义路由切换时页面如何滚动 这个功能只在支持 history.pushState 的浏览器中可用 当创建一个Router实例,可以提供一个 scrollBehavior 方法: scr 阅读全文
posted @ 2021-01-30 19:17 shanlu 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 打包构建应用时,JavaScript 包会变得非常大,影响页面加载,如果我们能把不同路由对应的组件分割成不同的代码块,然后在路由被访问的时候才加载对应组件,这样会更加高效。 结合Vue的异步组件和Webpack的代码分割功能,实现路由的懒加载 首先,可以将异步组件定义为返回一个Promise的工厂函 阅读全文
posted @ 2021-01-30 19:16 shanlu 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 中间件就是匹配路由之前或者匹配路由完成做的一系列的操作,我们就可以把它叫做中间件。 在express , 中间件(Middleware)是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和web 应用中处理请求-响 阅读全文
posted @ 2021-01-30 19:14 shanlu 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 安装 koa-views 和 ejs npm install --save koa-views npm install ejs --save https://www.npmjs.com/package/koa-views 引入 koa-views ,配置 ejs 模板引擎 配置方式1: const 阅读全文
posted @ 2021-01-30 19:12 shanlu 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 原生 NodeJS 获取 post 提交的数据 request.js exports.getPostData=function(ctx){ return new Promise((resolve,reject)=>{ try { let params = ''; ctx.req.on('data', 阅读全文
posted @ 2021-01-30 19:10 shanlu 阅读(950) 评论(0) 推荐(0) 编辑
摘要: 安装 koa-static ,配置静态服务: https://www.npmjs.com/package/koa-static npm install koa-static --save 配置中间件: app.js const Koa = require('koa') const app = new 阅读全文
posted @ 2021-01-30 19:08 shanlu 阅读(845) 评论(0) 推荐(0) 编辑
摘要: art-template 模板引擎: 中文文档:http://aui.github.io/art-template/zh-cn/docs/ 既支持ejs 的语法,也可以用自己的类似angular 数据绑定的语法 在 koa 中使用 art-template 模板引擎: npm install --s 阅读全文
posted @ 2021-01-30 19:06 shanlu 阅读(189) 评论(0) 推荐(0) 编辑
摘要: Cookie: ① cookie 是存储于访问者的计算机中的变量。可以让我们用同一个浏览器访问同一个域的不同页面的时候共享数据。② HTTP 是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何关系的 阅读全文
posted @ 2021-01-30 19:04 shanlu 阅读(534) 评论(0) 推荐(0) 编辑
摘要: Session: session 是另一种记录客户端状态的机制,不同的是 Cookie 保存在客户端的浏览器中,而 session 保存在服务器上。 session 工作流程: 当浏览器访问服务器并发送第一次请求时,服务端会创建一个 session 对象,生成一个类似于 key,value的键值对, 阅读全文
posted @ 2021-01-30 19:02 shanlu 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 解决原生NodeJS 操作MongoDB 数据库的性能问题,封装成更小、更灵活的操作MongoDB库: Config.js 将所要连接的数据的配置信息封装成一个模块: const Config = { dbUrl:'mongodb://admin:123@localhost:27017/', dbN 阅读全文
posted @ 2021-01-30 18:58 shanlu 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 添加用户:跳转到添加页面(一个添加的表单) 编辑用户:跳转到编辑页面(跳转过去要携带所编辑用户的id,查询到所编辑的该用户信息,获取编辑后传过来的值修改数据库中的数据) 删除用户:获取所要删除的用户的 id,执行数据库的删除操作 添加页面: 编辑页面: 路由配置: 首页,需要查询数据库中的用户信息并 阅读全文
posted @ 2021-01-30 18:54 shanlu 阅读(83) 评论(0) 推荐(0) 编辑