前端 uniapp 下设置全局变量小技巧
直接上代码 // 挂载 Vue.prototype // 示例如下: // 在 main.js 中挂载属性/方法 Vue.prototype.websiteUrl = ‘http://uniapp.dcloud.io’; Vue.prototype.now = Date.now || function () { return new Date().getTime(); }; Vue.prototype.isArray = Array.isArray || function (obj) { return obj instanceof Array; }; 然后在 pages/index/index.vue 中调用 <script> export default { data() { return {}; }, onLoad(){ console.log(‘now:’ + this.now()); }, methods: { } } </script> 这种方式,只需要在 main.js 中定义好即可在每个页面中直接调用。 Tips 每个页面中不要在出现重复的属性或方…
前端 uniapp 适配 刘海屏小技巧
var(–status-bar-height) 此变量在微信小程序环境为固定 25px,在 5+App 里为手机实际状态栏高度。 当设置 “navigationStyle”:”custom” 取消原生导航栏后,由于窗体为沉浸式,占据了状态栏位置。此时可以使用一个高度为 var(–status-bar-height) 的 view 放在页面顶部,避免页面内容出现在状态栏。 由于在H5端,不存在原生导航栏和tabbar,也是前端div模拟。如果设置了一个固定位置的居底view,在小程序和App端是在tabbar上方,但在H5端会与tabbar重叠。此时可使用–window-bottom,不管在哪个端,都是固定在tabbar上方。 <template> <view> <view class=”status_bar”> <!– 这里是状态栏 –> </view> <view> 状态栏下的文字 </view> </view> </template> <style> ….
git git commit message 按angular标准提交后,生成 Change log
conventional-changelog 安装 npm install -g conventional-changelog-cli 生成生成 CHANGELOG.md 文件 conventional-changelog -p angular -i CHANGELOG.md -s
git git Commit message 和 Change log 规范(转)
Commit message 的格式 每次提交,Commit message 都包括三个部分:Header,Body 和 Footer。 <type>(<scope>): <subject> // 空一行 <body> // 空一行 <footer> 其中,Header 是必需的,Body 和 Footer 可以省略。 不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。 Header Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。 (1)type type用于说明 commit 的类别,只允许使用下面7个标识。 feat:新功能(feature) fix:修补bug docs:文档(documentation) style: 格式(不影响代码运行的变动) refactor:重构(即不是新增功能,也不是修改bug的代码变动) test:增加测试 chore:构建过程或辅助工具的变动 如果type为feat和fix,则该 comm…
服务器 通过宝塔面板实现MySQL性能简单调优
准备: 1、宝塔Linux面板 正式版 5.2.0+ (2017/09/20发布) 测试版5.2.4+ 2、MySQL 5.x 通常MySQL调优我们分以下几部分: 1、MySQL配置参数调优 (需要根据网站运行情况调整) 2、数据表索引调优 (效果明显,但通常优秀的开源程序都不需要调整) 3、SQL语句调优 (这是程序员或DBA干的事) 今天我们主要谈谈如果配合宝塔面板的新功能来进行MySQL配置参数调优,我们先来看两张图片: (图1) (图2) 很明显,(图1)显示的是MySQL当前的运行状态,(图2)显示的是MySQL主要配置参数 下面我们就来解读一下这两张图: 1、活动/峰值连接数 (图1)中当前活动的连接为1个,自MySQL服务启动以来,最高连接数为54;当最高连接数接近或等于(图2)中的max_connections时,应适当增加max…
git git宝塔webhook自动更新shell脚本
#!/bin/bash echo “” #输出当前时间 date –date=’0 days ago’ “+%Y-%m-%d %H:%M:%S” echo “Start” #判断宝塔WebHook参数是否存在 if [ ! -n “$1” ]; then echo “param参数错误” echo “End” exit fi if [ $1 != “666” ] then echo “通讯密码错误” echo “End” exit fi #git项目路径 gitPath=”/www/wwwroot/hnfp.net” #git 网址 gitHttp=”xxx.com/hainanfp.git” #git 账号 gitAccount=”” #git 密码 gitPassword=”” #git 分支 gitBranch=”dev” echo “Web站点路径:$gitPath” #判断项目路径是否存在 if [ -d “$gitPath” ]; then cd $gitPath #判断是否存在git目录 if [ ! -d “.git” ]; then echo “在该目录下克隆 gi…
PHP 基于workerman写的一个简单的DTU透传tcp协议的简单服务端
功能点 1,60秒未注册设备,强制下线 2,自定义心跳包时间,超过心跳包时间,强制下线 3,数据传输使用json格式 4,实现注册功能 5,实现心跳功能 6,实现对某个已注册设备发送消息功能 7,设备回发数据使用post转发到指定URL功能 上代码 <?php require_once __DIR__ . ‘/vendor/autoload.php’; use think\Validate; use Workerman\Lib\Timer; use Workerman\Worker; // #### create socket and listen 1234 port #### $tcp_worker = new Worker(“tcp://0.0.0.0:61234”); define(‘HEARTBEAT_TIME’, 130); /** * 向设备发送指令后,设备回传的数据,转发到指定URL */ define(‘SEND_BACK_URL’, ‘http://127.0.0.1/aaa/callback.php’); define(‘DEBUG’, 1); // 4 pr…
PHP PHP 批量生成MySQL 数据表转 InnoDB 的SQL语句
public function test(){ $dataList = Db::query(“SELECT * FROM information_schema.TABLES AS t WHERE TABLE_SCHEMA = ‘siyuan.me’ AND TABLE_TYPE = ‘BASE TABLE'”); $str = []; foreach ($dataList as $item) { $str[] = ‘ALTER TABLE ‘. $item[‘table_name’] . ‘ ENGINE=InnoDB; ‘; } echo join(”, $str); }
Java Linux 如何将java服务注册为Linux系统服务启动
systemctl start test-demo-api.service //启动项目 systemctl stop test-demo-api.service //停止项目 systemctl restart test-demo-api.service //重启项目 systemctl status test-demo-api.service //查看项目状态 #服务文件内容 [Unit] Description=服务描述 After=network.target [Service] WorkingDirectory=运行目录 ExecStart=java绝对路径 -jar jar包路径>log.log ExecStop=kill $MAINPID Restart=always [Install] WantedBy=multi-user.target 服务存放路径 /usr/lib/systemd/system/ 重新读取服务 systemctl daemon-reload 查看启动失败原因 systemctl status test.service systemctl st…
前端 小程序 setData key是变量时的用法
官方文档是这样的: changeItemInArray: function() { // you can use this way to modify a danamic data path this.setData({ ‘array[0].text’:’changed data’ }) }, changeItemInObject: function(){ this.setData({ ‘object.text’: ‘changed data’ }); },无奈自己写的时候还是会遇到不能解决的问题,比如 this.setData({ ‘array[0].text’:’changed data’ })这里面的arry[o]是动态的,’array[index].text’,像这样显然是不行的,在网上搜了搜,虽然不知其所以然,在这里记录下来。 比如,要修改that.data.goods[0].price 的值,可以像这样, 这里是一个动态的变量 var price = ‘goods[‘+index+’].price’ this.setData({ [price]:’changed data’…
前端 使用less的unit方法解决微信小程序rpx单位在IDE中的报错
less 100rpx 可以写成 width: unit(100, rpx) 来完美解决IDE的报错 格式化也不会出现什么问题 wepy 默认预处理语言就是 less
前端 js中的数组对象排序
var arr = [{name: “zlw”, age: 24}, {name: “wlz”, age: 25}]; var compare = function (prop) { return function (obj1, obj2) { var val1 = obj1[prop]; var val2 = obj2[prop];if (val1 < val2) { return -1; } else if (val1 > val2) { return 1; } else { return 0; } } } console.log(arr.sort(compare(“age”)));
PHP php 二位数组按某个键值排序
$arr=[ array( ‘name’=>’小坏龙’, ‘age’=>28 ), array( ‘name’=>’小坏龙2’, ‘age’=>14 ), array( ‘name’=>’小坏龙3’, ‘age’=>59 ), array( ‘name’=>’小坏龙4’, ‘age’=>23 ), array( ‘name’=>’小坏龙5’, ‘age’=>23 ), array( ‘name’=>’小坏龙6’, ‘age’=>21 ), ]; array_multisort(array_column($arr,’age’),SORT_DESC,$arr); print_r($arr); 其中 array_column(数组,数组中的某个键值) 从多维数组中取出某个键值的一列 返回一个一维数组 array_multisort(数组(一维数组),排序方式(SOTR_ASC,SOTR_DESC),其他数组(可以是二维的))