《发现》页面
《发现》页面调用组件外部的样式components 内部的组件无法直接调用外部的样式。可通过以下方式调用组件外部样式:
方法一:
1234567891011121314151617父组件wxml:<!-- iconfont 和 icon-sousuo 是传入组件内部的样式名称,iconfont(自定义名称)="iconfont(外部样式文件中定义的样式名)" --><x-search iconfont="iconfont" icon-sousuo="icon-sousuo"/>子组件js:// 组件外部样式 externalClasses: [ 'iconfont', // 对应的是上面等号前面的名称 'icon-sousuo' ], 子组件wxml: 即可实现调用组件外的样式 <i class="iconfont icon-sousuo" /> 注意:如果想在组件内部再次修改样式,不能够引用外部传进来的clas ...
组件方法2
获取手机信息wx.getSystemInfo(Object object)
12345wx.getSystemInfo({ success(res) { console.log(res); //手机信息 },});
滚动组件scroll-view
12<scroll-view scroll-y scroll-top="{{scrollTop}}" scroll-with-animation="true"></scroll-view>
全局属性、方法(类似 vuex)1234567891011121314151617181920212223在app.js中:onLaunch: function () { this.globalData = {// 设置全局属性、方法 test: 0 }},setGlobalData(dataItem, val) { // 设置全局属性 this.g ...
组件方法
createSelectorQuery 查询节点信息createSelectorQuery 小程序的方法,用于查询节点等操作
1234567const query = wx.createSelectorQuery();query.select("#the-id").boundingClientRect(); // 节点的布局信息query.selectViewport().scrollOffset();query.exec(function (res) { res[0].top; // #the-id节点的上边界坐标 res[1].scrollTop; // 显示区域的竖直滚动位置});
组件内的方法Component(Object object)
组件生命周期lifetimes
123456// 生命周期lifetimes: { ready() { // 在组件在视图层布局完成后执行 ... }},
组件所在页面的生命周期12345678910111213Component(& ...
功能点
上拉加载与下拉刷新123456789101112131415161718192021222324252627page页面json中:"enablePullDownRefresh": truepage页面js中有这两个函数: /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function() { this.setData({ playlist: [] }) this._getPlaylist() }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function() { this._getPlaylist() }, 下拉刷新请求完数据后 wx.stopPullDownRefresh() // 停止下拉刷新动画
云函数路由优化 tcb-router一个用户在一个云环境只能创建 50 个云函数
假如小程序非常复杂,50 个云函数不能够满足业务需求怎么办?
相似的请求归类到同 ...
小程序知识点
代码规范很多公司借鉴的代码规范:https://github.com/airbnb/javascript
《音乐》页面开发123456789<!-- 轮播图组件 参数:indicator-dots 小圆点,autoplay 自动播放, interval 间隔时间,duration 动画时长 --><swiper indicator-dots="true" circular="true" interval="3000" duration="500"> <block wx:for="{{swiperImgUrls}}" wx:key="{{index}}"> <!-- 空节点 --> <swiper-item> <image src="{{item.url} ...
云函数的使用
云函数的使用cloudfunctions 目录 右键 新建 Node.js 云函数 > 输入目录名 getPlaylist
在云函数中向第三方服务器发送请求要依赖第三方库
安装依赖包
云函数目录 getPlaylist 右键 在终端打开 打开命令行 输入命令:
12npm install --save requestnpm install --save request-promise
github request-promise:https://github.com/request/request-promise
然后写相应代码
12345678910111213141516// 云函数入口文件const cloud = require("wx-server-sdk");cloud.init();const rp = require("request-promise"); // 需安装依赖包const URL = "http://musicapi.xiecheng.live/personalized";// 云函数入口 ...
“气球” 的最大数量
“气球” 的最大数量
给一个字符串 text,使用 text 中的字母来拼凑尽可能多的单词 “balloon”(气球)。字符串 text 中的每个字母最多只能被使用一次。返回最多可以拼凑出多少个单词 “balloon”。
输入:text = “nlaebolko”
输出:1
12345678910111213141516171819let maxNumberOfBalloons = function(text) { const cnt = new Array(5).fill(0); for (const ch of text) { if (ch === 'b') { cnt[0]++; } else if (ch === 'a') { cnt[1]++; } else if (ch === 'l') { cnt[2]++; ...
开发前的准备
开发前的准备开发工具 > 右上角详情 > 本地设置 > 调试基础库 设置为最新版本
app.js > wx.cloud.init > env 设置环境 ID
project.config.json 文件说明miniprogramRoot 小程序前端代码目录
cloudfunctionRoot 云函数代码目录
app.jsonpages 设置页面 ,设置后会自动在 pages 目录下生成相应的目录和文件
设置底部导航按钮:
12345678910111213141516171819202122"tabBar": { "color": "#474747", // 文字颜色 "selectedColor": "#d43c43", // 文字选中颜色 "list": [{ // 按钮列表,2-5项 "pagePath": "pages/playlist/playlist ...
云开发优势
serverless(无服务)概念:函数即服务,当需要后端服务的时候,不需要关心后端的 IP 地址、域名,只需要像调用普通函数一样既可以实现调用。
云开发优势快速上线、专注核心业务、独立开发一个完整的微信小程序、不需要学习新的语言,只需要会 javascript、无需运维, 节约成本、数据安全、
云开发提供能力云函数:在云端运行的代码,微信私有协议天然鉴权 (理解:相当于后端部分)
云数据库:一个既可以在小程序端操作又可以在云函数中操作的 JSON 数据库
云存储:在云端存储文件,可以在云端控制台可视化管理
云调用:基于云函数免鉴权使用小程序开放接口的能力(比如说给用户推送消息等)
HTTP API:使用 HTTP API 开发者可在已有服务器上访问云资源,实现与云开发的互通(作用:对原有传统模式下开发的小程序,可以与云开发进行互通)
appID每个小程序唯一的 id
云开发项目默认目录结构cloudfunctions —————————-云函数
callback ———————————- 回调函数
config.json —————————
index.js —————— ...
云数据库能力
云数据库能力云开发提供了一个 json 数据库,提供 2GB 免费存储空间。
数据类型String 字符串
Number 数字
Object 对象
Array 数组
Boolean 布尔值
GeoPoint 地理位置点
Date 时间 (精确到毫秒 ms,客户端时间)
Null 空
操作云数据库小程序控制(读写数据库受权限限制)
云函数控制(拥有所有读写数据库的权限)
控制台控制(拥有所有读写数据库的权限)
云数据库权限管理仅创建者可写,所有人可读 (适合于文章)
仅创建者可读写 (适用于私密内容)
仅管理端可写,所有人可读(适用于商品信息)
仅管理端可读写(适用于后台敏感数据)
操作云数据库1234567//初始化数据库const db = wx.cloud.database(); // 小程序端初始化数据库,如果在云函数端不需要加wx//切换环境(开发环境/生产环境)const testDB = wx.cloud.database({ env: "test",});