微信小程序入门

此处省略安装过程(网上很多 可直接),直接写笔记了

WXSS新增了尺寸单位:rpx ,不管什么手机,规定屏幕宽为750rpx 微信底层换算

开发小程序可以将iphone6作为视觉稿的标准。

WXS是脚本语言,结合WXML构建页面的结构,同时它并不依赖基础库版本,可以在所有版本的小程序上运行,它与js不同,并且运行环境与js是隔离的,wxs不能调用js中的函数或方法,也不能调用小程序提供的API。并且不能作为组件的事件回调。

由于运行环境的差异,在ios设备上,小程序内的wxs会比js代码快2-20倍,android上没有差异。

<view> 
 {{m1.message}}
</view>

<wxs module="m1">
  var msg = "hello world";
  module.exports.message = msg;
</wxs>

wxs模块,每个模块都有自己独立的作用域,一个模块要想对外暴露其内部的私有变量与函数只能通过module.exports实现。每个 wxs 模块均有一个内置的 module 对象。

// /pages/tools.wxs

var foo = "'hello world' from tools.wxs";
var bar = function (d) {
  return d;
}
module.exports = {
  FOO: foo,
  bar: bar,
};
module.exports.msg = "some msg";
<!-- page/index/index.wxml -->

<wxs src="./../tools.wxs" module="tools" />
<view> {{tools.msg}} </view>
<view> {{tools.bar(tools.FOO)}} </view>

 页面输出:

some msg
'hello world' from tools.wxs

 在.wxs模块中、wxml文件中引入模块:引用其他 wxs 文件模块,可以使用 require 函数。

// /pages/logic.wxs

var tools = require("./tools.wxs");
<!-- /page/index/index.wxml -->

<wxs src="./../logic.wxs" module="logic" />

 module属性是<wxs>标签的模块名,module名不要重复(重复会被覆盖),不同的wxs文件的module名字无影响

module 属性值的命名规则:

  • 首字符必须是:字母(a-zA-Z),下划线(_)
  • 剩余字符可以是:字母(a-zA-Z),下划线(_), 数字(0-9)

src属性用于引用时候使用。

<wxs> 模块只能在定义模块的 WXML 文件中被访问到。使用 <include><import> 时,<wxs> 模块不会被引入到对应的 WXML 文件中。

<template> 标签中,只能使用定义该 <template> 的 WXML 文件中定义的 <wxs> 模块。

开发过程中遇到一个小问题:

图片不能使用本地的图片,只能用网络图片或者base64格式图片,base64图片往往会出现一大串,放在wxss中特别不好看,于是可以新建一个js文件,专门用来存放这些base64格式的图片,添加好备注,不要弄乱:

<!--iconPath.js-->
const iconPath = {
  backimg:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAPCAYAAAD+pA/bAAAA/UlEQVQ4ja2RPRKCMBCFk1CL4kkAj2RvpY0Frd5RGbgAYDyA6y4hP0C02i1gvtmXzctbeTxdQWDtd6noX29hy7B2nCEPQT/bxvRrVk3zFHRDNzUNA7KeuB77vevX4kN6HejlgoN58lLdYbxJSDwI6HQzOvWcznlybtk5/cHKOqubB37BxVCjE6qQAfxLjP4Pt4aVzexQlCKssijmnM95qV9xblhxZ9600R1otswjO9CsmYcMOMDtgCvzyA54M/dskpHn6gacmRN3g9+p4sycioaHer8DhsxpqY7LYAecmZMe03EvU+RcoiKhqZPTFeM/EdI5XTJlq6yenON5y18PNJVeMb+1ywAAAABJRU5ErkJggg=='
}

module.exports = iconPath;

 然后index.js引入这个js文件,onload方法中将iconPath加载到data中:

// pages/.../index.js
const app = getApp();
const iconList = require('../utils/iconPath.js');
Page({

  /**
   * 页面的初始数据
   */
  data: {
    iconList: iconList
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({ iconList: iconList });
  },
...
  
})

this.data.iconPath就是有值的了;页面直接取值:

<view class='content' style='background:url({{iconList.backimg}});'>
...
</view>

 先写这么多吧 后续再加~

原文地址:https://www.cnblogs.com/liuyanan/p/10083375.html