-
;
1.echarts 报错 ‘There is a chart instance already initialized on the dom’ 在mounted里初次加载,然后在watch里监听数据变化, 两个事件内分别写上echarts.init就会有此警告 解决办法:data部分定义组件全局变量myCharts, 只在mounted内初始化:this.myCharts=echarts.init(document.getElementById(‘myCharts’)); 两个地方分别 setOption 2.JS空格报错 这是 ESLint,用来规范代码风格的 找到build文件夹下面的webpack.base.conf.js文件 找到rules部分 loader:’eslint-loader’ 注释之
- vuejs问题总结(三):各种报错整理 2017年11月4日
-
;
1.组件引用 <template> <div class="content"> <h1>title</h1> <subcontent class="subcontent_style"></subcontent> </div> </template> <script> import lifeChart from ‘@/components/sub/subcontent’ export default{ name:’content’, data(){ return{} }, components:{ ‘lifeChart’:lifeChart }, methods:{} } </script> 2.组件内mounted,watch 如何调用methods中的方法 mounted() { this.getchart(); }, watch:{ searchchart:’getchart’ }, methods:{ getchart:function(){} } 3.vue中透明蒙层点击空白处关闭 <div class="mask" @click.self="…
- vuejs问题总结(二):组件内各种方法 2017年11月4日
-
;
npm安装模块 npm install xxx //利用 npm 安装xxx模块到当前命令行所在目录; npm install -g xxx //利用npm安装全局模块xxx; 本地安装时将模块写入package.json中: npm install xxx //安装但不写入package.json; npm install xxx –save //安装并写入package.json的”dependencies”中; npm install xxx –save-dev //安装并写入package.json的”devDependencies”中。 npm 删除模块 npm uninstall xxx //删除xxx模块; npm uninstall -g xxx //删除全局模块xxx; 后记: 1.uninstall卡死 直接删除 node_modules文件夹,然后修改package.json,然后重新npm install
- npm常用命令 2017年11月2日
-
;
toUTCString() toISOString() http://www.jianshu.com/p/415f8c276388 https://segmentfault.com/a/1190000003710954?mType=Group https://segmentfault.com/a/1190000007581722 http://www.w3school.com.cn/jsref/jsref_obj_date.asp
- 时间相关函数 2017年11月1日
-
;
普通函数中的this: 1. this总是代表它的直接调用者, 例如 obj.func ,那么func中的this就是obj 2.在默认情况(非严格模式下,未使用 ‘use strict’),没找到直接调用者,则this指的是 window 3.在严格模式下,没有直接调用者的函数中的this是 undefined 4.使用call,apply,bind(ES5新增)绑定的,this指的是 绑定的对象 箭头函数中的this 默认指向在定义它时,它所处的对象(宿主对象),而不是执行时的对象, 定义它的时候,可能环境是window 要整明白这些, 我们需要首先了解一下作用域链: 当在函数中使用一个变量的时候,首先在本函数内部查找该变量,如果找不到则找其父级函数, 最后直到window,全局变量默认挂载在window对象下 1.全局变量默认挂载在window对象下 <script> var aa = 2; alert(window.aa); (function () { aa = 3; })(); alert(window.aa); </script> 我们仅仅声明了一个全局变量aa,但是打印出window.aa却和aa保持一致,为什么呢? 眼见为实, 我们使用 console.dir(window) …
- 深入理解ES6箭头函数的this 2017年10月31日
-
;
★概述: 使用对象字面量,或者向空对象中动态地添加新成员,是最简单易用的对象创建方法。然而,除了这两种常用的对象创建方式,JavaScript还提供了其他方法创建对象。 ★使用工厂函数创建对象 我们可以编写一个函数,此函数的功能就是创建对象,可以将其称为“对象工厂方法”。 ★ 定义对象“构造”函数 注意点:对象构造函数首字母大写;内部使用this关键字给对象添加成员;使用new关键字调用对象构造函数 ★ 对象的constructor属性 使用对象构造函数创建对象,每个对象的constructor属性都会引用这个构造函数;如下图示, 使用对象工厂函数创建对象,每个对象的constructor属性引用Object();如下图示, ★ 以 普通方式调用的“构造函数” 构造函数其实也是一个函数。不同之处在于调用它时,必须加一个“new”关键字,如果不加这个关键字,则对它的调用被认为是普通函数调用。 注意,这里的普通调用构造函数,在输出window.name是输出以当前的普通调用函数值。不理解的话,看图吧。 对象构造函数与对象工厂方法的区别 1.对象构造函数中没有显示的对象创建代码; 2.新对象应具备的属性与方法通过this引用添加的; 3.对象构造函数中没有return语句; 4.通常会把对象构造函数的首字母设置为大写的,以区别普通函数。 来源:ht…
- 对象工厂函数与构造函数 2017年10月31日
-
;
1.vue中for内变量作用域 var obj={}; for(var i=0;i<length;i++){ obj.id=fileList[i].response.body.id; obj.type=’DOM’; obj.zindex=”; this.CrudeImg[i]=obj; }; 两种写法obj作用域不同 for(var i=0;i<length;i++){ var obj={}; obj.id=fileList[i].response.body.id; obj.type=’DOM’; obj.zindex=”; this.CrudeImg[i]=obj; };
- vuejs问题总结(四):疑问 2017年10月30日
-
;
array.map(callback, [thisArg]) map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值组合起来形成一个新数组。如果 thisArg 参数有值,则每次 callback 函数被调用的时候,this 都会指向 thisArg 参数上的这个对象。如果省略了 thisArg 参数,或者赋值为 null 或 undefined,则 this 指向全局对象 。 var numbers = [1, 4, 9]; var roots = numbers.map(Math.sqrt); /* roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]*/
- map函数 2017年10月29日
-
;
1.camelCase vs. kebab-case HTML 特性是不区分大小写的。所以,当使用的不是字符串模板时,camelCase (驼峰式命名) 的 prop 需要转换为相对应的 kebab-case (短横线分隔式命名): Vue.component(‘child’, { // 在 JavaScript 中使用 camelCase props: [‘myMessage’], template: ‘<span>{{ myMessage }}</span>’ }) <!– 在 HTML 中使用 kebab-case –> <child my-message="hello!"></child> 如果你使用字符串模板,则没有这些限制(字符串模板就是,模板不含数据,为静态内容)。 2.把一个对象的所有属性作为 prop 进行传递 可以使用不带任何参数的 v-bind (即用 v-bind 而不是 v-bind:prop-name)。例如,已知一个 todo 对象: todo: { text: ‘Learn Vue’, isComplete: false } 然后: <todo-item v-bind="todo"></to…
- vuejs问题总结(一):注意事项 2017年10月28日
-
;
传统的方案是,登录页和主页是单独的两个页面,登录成功后服务器生成用户信息对应的session,然后渲染主页数据,并通过响应头将sessionid传给浏览器并生成相应的cookie文件。这样下次请求页面时,浏览器会在http header带上相应的cookie,然后服务器根据cookie中的sessionid判断用户是否登录,再显示用户数据。
- sesion验证的流程 2017年10月27日
-
;
JSON.parse() 方法用于将一个 JSON 字符串转换为对象。 语法:JSON.parse(text[, reviver]) 参数说明: text:必需, 一个有效的 JSON 字符串。 reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。 返回值: 返回给定 JSON 字符串转换后的对象。 JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。 语法:JSON.stringify(value[, replacer[, space]]) 参数说明: value: 必需, 一个有效的 JSON 字符串。 replacer: 可选。用于转换结果的函数或数组。 如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:””。 如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。 space: 可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格…
- JSON.parse与JSON.stringify及toString 2017年10月27日
-
;
DI / 双向数据绑定中: 用户 -> 内存 : 浏览器提供有User Event触发事件的API,如click,change…等等等; 内存 -> 用户: 浏览器并没有提供数据监测的API,故任何内存数据变动(定时、异步请求、事件触发…导致的数据变动)都无法被Listen,自然也就没办法再处理callback了; 但我们可以基于这些大部分能够产生数据变动的事件进行封装(如:click、mouse-enter、Timeout…),在每次事件发生后,执行完事件后,检查一遍数据的变化,如果数据和上次的值有变化,则执行这个值(注册时)对应的callback(框架中),这个callback可能是view层的一个数据展现,也可能是一段处理function; 在检查数据变化的时候,由于你并不知道这个事件是对哪些数据进行了更改,以及这个事件有可能造成事件之外的其他任何地方的数据更改,所以必须进行一次大检查,将所有“注册”过的值全部检查一遍,一次检查称为一个周期,每次最少检查两遍,因为第二遍用来确认,前一遍的变动中是否有数据的变动,导致了其他数据的变动,如果第二次有变动的话,会再执行一遍,直到最后两次完全一致,则停止检查(其实就是个(递归(遍历))的过程),考虑到内存的消耗和死循环的风险,脏检查每个周期最多递归执行10遍,…
- angular的脏检测 2017年10月22日
-
;
Object.defineproperty语法 在一个对象上定义新的属性 var o = {}; // 创建一个新对象 // Example of an object property added with defineProperty with a data property descriptor Object.defineProperty(o, "a", {value : 37, writable : true, enumerable : true, configurable : true}); // 对象o拥有了属性a,值为37 // Example of an object property added with defineProperty with an accessor property descriptor var bValue; Object.defineProperty(o, "b", {get : function(){ return bValue; }, set : function(newValue){ bValue = newValue; }, enumerable : true, configurable : true}); o.b = 38; 数据和视图联动 给对象o定义…
- Object.defineproperty实现数据和视图的联动 2017年10月21日
-
;
// Converts canvas to an image function convertCanvasToImage(canvas) { var image = new Image(); image.src = canvas.toDataURL("image/png"); return image; } // Converts image to canvas; returns new canvas element function convertImageToCanvas(image) { var canvas = document.createElement("canvas"); canvas.width = image.width; canvas.height = image.height; canvas.getContext("2d").drawImage(image, 0, 0); return canvas; }
- canvas与image互相转换 2017年10月20日
-
;
1.jsonp jsonp只支持GET方式,type设为POST,也会自动变为GET 2.iframe 可以使用创建一个隐藏的iframe来实现,与ajax上传图片原理一样,较麻烦 3.服务端设置Access-Control-Allow 在被请求的Response header中加入 header(‘Access-Control-Allow-Origin:*’); header(‘Access-Control-Allow-Methods:POST’); header(‘Access-Control-Allow-Headers:x-requested-with,content-type’); Access-Control-Allow-Origin:* 表示允许任何域名跨域访问 如果需要指定某域名才允许跨域访问,只需把Access-Control-Allow-Origin:*改为Access-Control-Allow-Origin:允许的域名 例如:header(‘Access-Control-Allow-Origin:http://www.client.com’);
- ajax跨域总结 2017年10月18日
-
;
sudo apt-get update sudo apt-get install wget wget –version
- wget 2017年10月18日
-
;
步骤一:修改全局配置文件 路径:/etc/mysql/my.cnf bind-address = 127.0.0.1 修改为: bind-address = 0.0.0.0 步骤二:针对特定用户授权 (xshell内执行sql语句始终无反馈,不得已发现在phpmyadmin内可手动修改) phpmyadmin找到user一栏,接下来’Change Login Information’选项host改为’any host’ 命令行模式下修改: update user set host = ‘%’ where user = ‘root’; //注意=两边的空格 select host,user from user; //查看结果 grant命令相关 1.格式 grant 权限 on 数据库对象 to 用户 grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’; 2.示例 权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。 当权限1,权限2,…权…
- mysql用户开启远程连接 2017年10月8日
-
;
“社会支持(social support)系统”,也称为“社会关系网”,是20世纪70年代提出来的心理学专业词汇,即个人在自己的社会关系网络中所能获得的、来自他人的物质和精神上的帮助和支援。 社会支持从性质上可以分为两类: 一类为客观的、可见的或实际的支持: 包括物质上的直接援助和社会网络、团体关系的存在和参与,后者是指稳定的婚姻(如家庭、婚姻、朋友、同事等)或不稳定的社会联系如非正式团体、暂时性的社会交际等的大小和可获得程度,这类支持独立与个体的感受,是客观存在的现实; 另一类是主观的、体验到的情感上的支持:指的是个体在社会中受尊重、被支持、理解的情感体验和满意程度,与个体的主观感受密切相关。有学者将其分别命名为社会支持的可利用度和自我感觉到的社会关系的适合程度,在进行心理学的科学评定时用以评定其的社会支持大小。
- 社会支持系统 2017年9月10日
-
;
无力感是主观与客观的矛盾,人常常想要达成一项主观的意志,但由于自己的身份,社会地位,各种因素的影响和干扰,你的实际行动往往未能达到预定的目标,这时候,人们心中往往会有淡淡的无力感,一闪即逝。
- 无力感 2017年9月10日
-
;
失态是人类特有的一种行为错位。简单的解释就是表现出被认为是不正常的行为举止。它与失常的区别在于,前者是意识清楚正常的,而后者是意识模糊的。失态这个行为,是在社交活动中表现的,独处的时候,它是无意义的。 失态的行为机制可能是条件反射,迅速的条件反射使主体来不及用意识去控制,而导致行为与主体思想意识的错位。
- 失态 2017年9月10日
-
;
文档:https://mp.weixin.qq.com/wiki
- 微信开发 2017年8月31日
-
;
1.方括号内的特殊符号除了方括号符号,其实可以不加转义符号,例如:/ab[.*]c/和/ab[\.\*]c/等效 参考:捕获,http://www.cnblogs.com/pmars/archive/2011/12/30/2307507.html
- 正则表达式(三)-补充 2017年8月25日
-
;
1.什么是 html 标签,html 实体 . html标签 描述 html实体 great than > . 2.为什么需要转换 比如我们要在浏览器里显示代码,浏览器会把它当作 html 标签语言直接执行,解决方法就是将 html 标签转变为 html 实体再编写到代码中. 比如我们要显示<script>alert(1)</script>, 那么我们的代码中应该这样写:<script>alert(1)</script>。 既然代码<script>alert(1)</script>显示的是<script>alert(1)</script>, 那么如果要显示<script>alert(1)</script>; 又应该写怎么样的代码呢? 道理很简单,一段文本,如果在页面中的显示跟代码不一致,那说明肯定是里面包含了html的关键字,比如上一段代码中就包含了关键字&,如果想要在浏览器中显示&(html关键字),则需要在代码中用它对应的实体来替换掉,&的实体为&, 因此要显示&a…
- html标签与实体详细说明 2017年8月23日
-
;
不懂正则引擎原理的情况下,同样可以写出满足需求的正则,但是不知道原理,却很难写出高效且没有隐患的正则。所以对于经常使用正则,或是有兴趣深入学习正则的人,还是有必要了解一下正则引擎的匹配原理的。 1.为什么要了解引擎匹配原理 一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱出非常动听的乐曲,一个演奏者同样可以照着乐谱奏出动听的乐曲,但他/她或许不知道该如何去改变音符的组合,使得乐曲更动听。 作为正则的使用者也一样,不懂正则引擎原理的情况下,同样可以写出满足需求的正则,但是不知道原理,却很难写出高效且没有隐患的正则。所以对于经常使用正则,或是有兴趣深入学习正则的人,还是有必要了解一下正则引擎的匹配原理的。 2.正则表达式引擎 正则引擎大体上可分为不同的两类:DFA和NFA,而NFA又基本上可以分为传统型NFA和POSIX NFA。 DFA Deterministic finite automaton 确定型有穷自动机 NFA Non-deterministic finite automaton 非确定型有穷自动机 Traditional NFA POSIX NFA DFA引擎因为不需要回溯,所以匹配快速,但不支持捕获组,所以也就不支持反向引用和$number这种引用方式,目前使用DFA引擎的语言和工具主要有…
- NFA引擎匹配原理 2017年8月23日
