w3cmm - 一点技术,一点艺术

w3cmm

用Dva Model优化业务逻辑

最近业务中的中后台系统基本上都是采用Ant Design Pro开发,业务中路由配置模块功能过于复杂,如果组件通信只通过React props实在是痛苦不堪。Ant Design Pro中内置了dva,dva 通过 model 的概念把一个领域的模型管理起来,包含同步更新 state 的 reducers,处理异步逻辑的 effects,订阅数据源的 subscriptions 。 拆分组件 设计Model export default { namespace: ‘routeConfig’, s … 继续阅读

发表在 Memo | |
w3cmm

Redux 在车货匹配项目中的实践

Redux已经发布3年左右,一直没有在生产环境中实践过,前段时间正好有新需求可以体验一下。本文摘取项目的部分代码进行简单的分析。 入口文件: #goodsNew/index.tsx import * as React from ‘react’; import {createStore, applyMiddleware, Middleware} from ‘redux’ import {Provider} from ‘react-redux’ import {createLogger} from … 继续阅读

发表在 Memo | |
w3cmm

JavaScript货币数值转换千分位

function formatNumber (num) { return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, “$1,”) } console.info(formatNumber(2665)); // 2,665 console.info(formatNumber(102665)); // 102,665 console.info(formatNumber(111102665)); // 111,102,665 对于包含小数点的数值 … 继续阅读

发表在 JavaScript |
w3cmm

JavaScript检测浏览器是否支持特定的CSS属性

var supports = (function() { //创建一个div,把前缀分割放到数组中 var div = document.createElement(‘div’), vendors = ‘Khtml Ms O Moz Webkit’.split(‘ ‘), len = vendors.length; return function(prop) { if ( prop in div.style ) return true; //把属性名第一个字符换成大写 prop = prop.r … 继续阅读

发表在 JavaScript |
w3cmm

JavaScript数值向下舍/向上舍

//向下舍 Number.prototype.roundFloor = function (precision) { return Math.floor(this * Math.pow(10, precision)) / Math.pow(10, precision); } //向上舍 Number.prototype.roundCeil = function (precision) { return Math.ceil(this * Math.pow(10, precision)) / Mat … 继续阅读

发表在 JavaScript |
w3cmm

查看npm安装的node模块版本

npm list for local packages npm list -g for globally installed packages. 您可以通过传递特定package的name作为参数来查找其版本。 例如, npm list grunt will result in: projectName@projectVersion /path/to/project/folder └── grunt@0.4.1 Alternatively, you can just run npm list w … 继续阅读

发表在 Memo |
w3cmm

Apache服务无法访问包含“javascript”的目录

以前升级服务器发现url包含javascript的路径,全部无法访问。例如:https://w3cmm.com/javascript/es5.html. Forbidden You don’t have permission to access /javascript/ on this server. 解决方案 禁用javascript-common: a2disconf javascript-common service apache2 reload 如果出于某种原因要使用java … 继续阅读

发表在 Memo |
w3cmm

Intellij idea代码自动换行

Intellij idea当前文件自动换行 在代码编辑区域左侧右键勾选Soft-Wrap Current Editor。 Intellij idea默认自动换行 在 Settings/Preferences 窗口 (⌘,), 选择 Editor > General 勾选Soft-wrap files。 Intellij idea设置自动换行宽度 在 Settings/Preferences 窗口 (⌘,), 选择 Editor > Code Style 修改Hard wrap at。 … 继续阅读

发表在 Memo | |
w3cmm

Intellij idea格式化代码快捷键

Intellij idea格式化代码片段 在编辑器中,选择需要格式化的代码。 在菜单中,选择 Code | Reformat ⌥⌘L。 如果您不选择代码片段,则IntelliJ IDEA将重新格式化整个文件。 Intellij idea格式化文件 在编辑器中打开文件,然后按⌥⇧⌘L或在Project工具窗口中,右键单击该文件,然后选择Reformat Code。 可以按⇧并选择其他文件以进行组格式化。 如果需要,在打开的对话框中,选择以下重新格式化选项: Optimize imports: 如果 … 继续阅读

发表在 Memo | |
w3cmm

Linux tail 命令

在类似Unix-like的操作系统上,tail命令读取文件,并输出文件的最后部分(“ tail”)。 tail命令还可以监视数据流和打开文件,并在写入时显示新信息。例如,这是一种实时监视系统log中最新事件的有用方法。 默认情况下,tail将每个文件的最后10行打印到标准输出。如果指定多个文件,则每组输出均以显示文件名的标题作为前缀。 tail语法: tail [OPTION]… [FILE]… tail –help tail –version tail示例: tail error. … 继续阅读

发表在 Linux | |
w3cmm

使用rel=noopener更安全

链接目标网页可以通过window.opener访问入口页面window信息,从而被利用将入口页面恶意跳转。 <!–入口页面–> <a href=”test.html” target=”_blank”>进入</a> <!–test.html–> <script>window.opener.location.href=”https://w3cmm.com”;</script> 为了防止window.opener被滥用,在 … 继续阅读

发表在 Memo |