零碎的小程序笔记

目录

template的简单使用
WXS的简单使用
npm的简单使用
倒计时js的实现
wx:for的使用
一些js方法记录
wxss记录

template的简单使用

创建一个page,在.wxml.wxss中正常编写页面和样式代码,其中在.wxml中加入<template>标签如下:my_template.wxml

<template name="my-first-template">
  <view>{{myData}}</view>
</template>

在需要用到该模板的wxml页面,引入模板并使用

// 引用模板文件
<import src="../my_template/my_template.wxml" />
// 使用模板
<template is="my-first-template" data="{{myData}}"></template>

在对应的.wxss文件也要引入对应的模板样式文件

@import "../my_template/my_template.wxss";

WXS的简单使用

新建一个.wxs后缀的文件,编写代码,这里以一个截取字符串为案例

var subString = function(str, start, end) {
  if (str.length == 0 || str == undefined) return;
  if (start > end || str.length < end) return str;

  if (start != undefined && end != undefined) {
    return str.substring(start, end)
  }
  return str
}

// 暴露接口
module.exports.subString = subString;

.wxml文件中使用wxs

<!-- 'tools'是在该页面使用wxs的名字,可以自定义 -->
<wxs src="../utils/substring.wxs" module="tools" />

<text>{{tools.subString("ABCDEFG")}}</text>

如果是将wxs的代码直接写在.wxml中,则要在wxs代码中就对其命名

<text>{{tools.subString("ABCDEFG")}}</text>

<wxs module="tools">
  var subString = function(str, start, end) {
    // ...
  }
  // 暴露接口
  module.exports.subString = subString;
</wxs>

npm的简单使用

以安装小程序的 MobX 绑定辅助库为例
在命令行中定位到小程序项目根目录按顺序执行以下命令

npm init -y
npm install --save mobx-miniprogram mobx-miniprogram-bindings

执行完成后根目录会生成node_modules文件夹,依赖的代码就在里面。
然后在微信开发者工具点击 工具 - 构建npm ,开发者工具会将依赖构建到miniprogram_npm文件夹,这样就可以使用相关的模块了。
使用git管理时可以不必上传miniprogram_npmnode_modules文件夹内的文件,只需在下载项目后执行npm install构建npm即可。

倒计时js的实现

传入毫秒开始倒计时,如传入 10*1000 == 10000ms 即为10秒倒计时

// utils.js
const countDown = function(time) {
  let day = parseInt(time / 1000 / 60 / 60 / 60 / 24);
  let hour = parseInt(time / 1000 / 60 / 60 / 60 % 24);
  let minute = parseInt(time / 1000 / 60 % 60);
  let second = parseInt(time / 1000 % 60);

  var timeMap = {
    day: timeFormat(day),
    hour: timeFormat(hour),
    minute: timeFormat(minute),
    second: timeFormat(second)
  }

  return timeMap
}

// //小于10的格式化函数(2变成02)
function timeFormat(param) {
  return param < 10 ? '0' + param : param;
}

在页面js中的使用方法

  data: {
    totalTime: 10 * 1000, // 10秒倒计时
    timer: '', // 定时器
    hours: '',
    minute: '',
    second: ''
  },

countDown: function() {
    if (this.data.totalTime >= 0) {
      let map = utils.countDown(this.data.totalTime)
      this.setData({
        hour: map.hour,
        minute: map.minute,
        second: map.second
      })
      this.data.totalTime = this.data.totalTime - 1000
      this.data.timer = setTimeout(this.countDown, 1000);
    } else{
      // 时间到的处理
    }
  },
// 退出该页面时要取消定时器,否则还会继续倒计时
 onUnload: function() {
    clearTimeout(this.data.timer)
  },

wx:for的使用

<!-- 循环list数组,wx:for-item是对数组内对象重命名,不加默认为item-->
<!-- 循环list数组,wx:for-index是对数组内下标重命名,不加默认为index-->
<block wx:for="{{list}}" wx:for-item="newName" wx:for-index="newIndex">
  <text>{{newName.text}}</text>
  <text>{{list[newIndex].text}}</text>
</block>

一些js的方法记录

// 获取路径中的文件名
// eg. var str = 'a/b/c.jpg'
// basename(str)  返回 c.jpg
function basename(str) {
  var idx = str.lastIndexOf('/')
  idx = idx > -1 ? idx : str.lastIndexOf('\\')
  if (idx < 0) {
    return str
  }
  return str.substring(idx + 1);
}
// 返回路径中的文件名,不带后缀
// eg. var str = 'a/b/c.jpg'
// splitFileName(str)  返回c
function splitFileName(text) {
  var pattern = /\.{1}[a-z]{1,}$/;
  if (pattern.exec(text) !== null) {
    return (text.slice(0, pattern.exec(text).index));
  } else {
    return text;
  }
}
// string转map
var str = '{"name":"张三","age":"16"}'
var map = JSON.parse(str)
// 向数组增加元素
var myList = [1,3,5]
myList.push(7) // [1,3,5,7]  添加到数组末尾
myList.unshift(4) // [4,1,3,5,7]  添加到第0个位置
myList.splice(2,1) // [4,1,5,7]  删除数组下标第2个元素
// myList.splice(a,b)  从数组下标为a的元素开始(包括a)删除b个元素

wxss记录

  flex-grow: 0; /* 放大比例,0是不放大*/
  flex-shrink: 0; /* 缩小比例,0是不缩小 */
  box-shadow: 0rpx 0rpx 5rpx 5rpx #d3d3d3; /* 水平位移、垂直位移、模糊程度、阴影半径、颜色*/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容