序列化,数据库存多个字段数据
$old['xxx'] = (int) $_POST['ooo']; $res = serialize($old); 取出: var_dump(unserialize($res));die; 手册:http://php.net/manual/zh/function.serialize.php 序列化表单(Ajax中):https://blog.csdn.net/xinghuo0007/article/details/72654817
webpack 是前端开发最常用的模块打包器之一,我们可能是使用github上提供的脚手架如react-boilerplate,也有可能根据自己的项目来写webpack配置。无论你是属于哪一种情况,你还是要熟悉webpack的相关配置才能更好的使用它。
接下来主要介绍webpack中的babel配置和HMR两块内容。
Babel 是一个 JavaScript 编译器。 通过编译转换允许你立刻使用新语法,无需等待浏览器支持。
现在babel的版本是6.x,下面提到的知识点都是基于这个版本的。
.babelrc 是用来配置转码的规则和插件的。
{
// 倒序编译
"presets": [
"env",
"react"
"stage-2",
],
"plugins": ["transform-runtime"],
}
复制代码
presets是一堆plugins的预设,起到方便的作用。
plugins是编码转化工具,babel会根据你配置的插件对代码进行相应的转化。
除了presets和plguins配置,babel还支持对应的环境下相关配置。
"env": {
"production": {
"plugins": ["transform-react-constant-elements"]
}
}
复制代码
babel-preset-env 默认情况下是等于 ES2015 + ES2016 + ES2017,也就是说它对这三个版本的ES语法进行转化。
这个preset提供了一些配置,如下面通过配置针对各个浏览器的最新的两个版本,以及safari的版本7及以上进行转码
{
"presets": [
["env", {
"targets": {
"browsers": ["last 2 versions", "safari >= 7"]
}
}]
]
}
复制代码
ECMAScript标准的制定流程包含下面几个阶段。
babel-preset-stage-n 包括了 babel-preset-stage-0, babel-preset-stage-1, babel-preset-stage-2, babel-preset-stage-3。
那么为什么没有babel-preset-stage-4呢?第四阶段属于定案完成阶段了,相关的内容就在上边的babel-preset-env中。
各个stage之间是包含关系,stage-0会包含stage-1, stage-2, stage-3, 如此类推。
每个stage都包含相应的插件,个人常用的是stage-2,包含插件有类属性语法、装饰器语法、对象展开操作、async/await等。
这个预设就是包含了react开发所需的相关插件,支持react开发相关语法。
Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API ,比如 Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise 等全局对象,以及一些定义在全局对象上的方法(比如 Object.assign)都不会转码。
如上述所说,对于新的API,你可能需要引入babel-polyfill来进行兼容
安装和使用:
npm install --save babel-polyfill
+ import "babel-polyfill"
+ module.exports = { entry: ['babel-polyfill', './app/js'] }
复制代码
关键点:
babel-runtime的作用:
Array.includes 安装:
npm install --save-dev babel-plugin-transform-runtime
npm install --save babel-runtime
复制代码
babel-runtime 更像是分散的 polyfill 模块,需要在各自的模块里单独引入,借助 transform-runtime 插件来自动化处理这一切,也就是说你不要在文件开头import相关的polyfill,你只需使用,transform-runtime会帮你引入。
babel-runtime一般用在库的开发
两种方式都可以实现热加载。
package.json 增加 --hot "dev": "webpack-dev-server --color --progress --hot"
复制代码
src/index.js 增加module.hot.accept(),如下。当模块更新的时候,通知index.js if (module.hot) {
module.hot.accept();
}
console.log('hot module replacement work')
复制代码
Node.js API方式webpack.config.jsconst webpack = require('webpack');
devServer: {
hot: true
}
plugins:[
new webpack.HotModuleReplacementPlugin()
]
复制代码
src/index.js 增加module.hot.accept(),如下。当模块更新的时候,通知index.js 原文发布时间为:2018年07月01日
原文作者:Skandar-Ln
本文来源:掘金 如需转载请联系原作者
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。
Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。