关于node的不同取参方式
1.req.query(无需载入中间件)
通过req.query可以获取GET请求的参数
// GET /search?username=tom+braintreq.query.username// => "tom braint"// GET /shoes?username=jack&info[age]=20&info[hobby]=dancereq.query.order// => "jack"
2.req.params(无需载入中间件)通过req.param同样是获取GET请求参数,用于router.get(“/user/:userinfo”,….)
// router.get("/user/:userinfo",function(req,res,next){// console.log(req.params.userinfo)// })// 那么“userinfo”属性可作为req.params.userinfo// 示例:GET /user/jackreq.par ...
使用keep-alive实现组件页面缓存
Code Is Never Die !
keep-alive 参考文档
Props:
include - 字符串或正则表达式。只有名称匹配的组件会被缓存。
exclude - 字符串或正则表达式。任何名称匹配的组件都不会被缓存。
max - 数字。最多可以缓存多少组件实例。
用法:
<keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。
<keep-alive> 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在组件的父组件链中。
当组件在 <keep-alive> 内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。
在 2.2.0 及其更高版本中,activated 和 deactivated 将会在 <keep-alive> 树内的所有嵌套组件中触发。
实现步骤
给app.vue中的添加keep-alive组件,并通过include来决定缓存哪些页面
<template> <div id="app& ...
其他解决方法:Forbidden(403) CSRF verification failed.Request aborted.
Code Is Never Die !
今天在完成部分页面发起POST请求时,出现了如下所示的403报错情况度娘搜索了一下,解决方法包含了前端修改和后端修改的解决办法,前端来修改操作的90%都集中于在form标签里面添加{% csrf_token %}即可,也是最为简单的,然而,很不幸我加了之后依然报错。后来发现页面登陆进来会有一个接口获取csrfToken,用来防御CSRF攻击,在接口请求时为避免安全性的问题产生漏洞,会在headers中携带此csrfToken,故在请求时加上headers: { 'X-CSRFToken': token },其中token为获取得到的csrfToken,这样就能够正常调用接口,从而访问/存储信息。
结尾: 发现只有POST请求接口必须要携带token,而GET请求不携带也可访问,暂时未知原因。猜测为:GET请求数据不会造成安全攻击,只是拿到数据,并不能对数据进行操作。希望有大神可以指导,共同进步!
字符串、数组、对象等常用方法(留存备用)
Code Is Never Die !
记录一下吧,经常用到的一些字符串、数组、对象等的方法,老是会忘记使用方法和混淆!
split(separator,howmany)---字符串方法string.split() 方法用于把一个字符串分割成字符串数组。
let R = 'www.rainux.top'R.split('.') // ['www','rainux','top']R.split('.',2) // ['www','rainux']截前两部分R.split('',4) // ["w", "w", "w", "."]
join(separator)---数组方法Array.join() 方法将数组作为字符串返回。元素将由指定的分隔符分隔。默认分隔符是逗号 (,)。join() 方法不会改变原始数组。
let R = [ ...
超简单使用Vue项目引入Vuex,随时更新新问题
Code Is Never Die !
如何更好地在组件外部管理状态,Vuex 可以帮助我们管理共享状态,并附带了更多的概念和框架,将会成为自然而然的选择。
今天就简单记录一下最简单的使用Vuex的方法。
一、安装引入如果是Vue项目搭建的底层,推荐npm/yarn安装
#npmnpm install vuex --save#yarnyarn add vuex
二、结构添加经过步骤一,成功安装了vuex,下面需要在src目录下新建store/store.js,当然了,需要在项目中使用,肯定是要引入到main.js中的。以下以登陆成功保存用户名和用户所在用户组为例:1.以下为基本的main.js设置:
import Vue from 'vue'import App from './App'import axios from 'axios'import router from './router'import store from './store'Vue.prototype.$http = ...
记录_设置jtopo节点不可拖拽
Code Is Never Die !
this.scene.mousedrag(function(e)){ e.target.dragable = false;//将拖拽设置为false}
构建一个表格,能够实现一对多的数据形式(已自用于项目),形象而便于使用
Code Is Never Die !
本功能测试依托于Vue渐进式框架、Iview组件库。
功能实战化博主已在工作项目中亲身使用,确保只要按照这种方法肯定能使用,项目中使用,可以和后台提前沟通好数据格式,这样确保万无一失!附录项目中真实数据和展现情况!
实现功能构建一个表格,能够实现一对多的情况,例如国家信息安全漏洞共享平台总结周度漏洞反馈情况,一些实力较强的公司(启安信、启明星辰等)可能贡献颇多,在以表格形式列举报表时,需要一对多的展现形式:
实现代码(详细)模板字符串部分
<Table height="318" border // 关键处理行、列关系 :span-method="handleSpan" align="center" // 表头 :columns="columns1" :data="processList"> <template slot-scope="{ row, index } ...
前端面试基本---面向过程与面向对象
Code is never die !
1. 面向过程
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。
总结:按照步骤编程 (函数和变量)
2. 面向对象
面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。
总结:将需求分析出一个一个的对象,然后在分析出对象中的属性和方法,最后按照步骤编程(方法和属性)
3. 面向过程与面向对象对比
面向过程
面向对象
优点
性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用的面向过程编程。
易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点
不易维护、不易复用、不易扩展
性能比面向过程低
4. 应用场景
比较简单的逻辑,使用面向过程,前端更偏向使用面向过程。
比较复杂的逻辑,使用面向对象,后端更偏向使用面向对象。
Ending…
Git:放弃本地(或Linux下)修改内容,全部拉取远端git仓库代码
Code Is Never Die
本地(或者服务器)修改了部分内容,想要放弃本地的更改,拉取使用远程git仓库所有内容,可以进行下面操作:
// 一、拉取所有更新,不同步git fetch --all// 二、指向master最新版本,覆盖本地内容(包含本地修改)// 拿到所有远程master内容git reset --hard origin/master
// 单条执行命令--覆盖本地内容(效果同上一&二)git fetch --all && git reset --hard origin/master
数组、对象遍历收藏版
Code Is Never Die !
留存方便自己使用,方便大家使用
遍历对象:1.Object.keys()
var obj = {'0':'a','1':'b','2':'c'};Object.keys(obj).forEach(function(key){ console.log(key,obj[key]);});
2.for…in…
var obj = {'0':'a','1':'b','2':'c'};for(var i in obj) { console.log(i,":",obj[i]);}
3.Object.getOwnPropertyNames(obj)
var obj = {'0':& ...