zoukankan      html  css  js  c++  java
  • 微信小程序入门

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

    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>
    

     先写这么多吧 后续再加~

  • 相关阅读:
    Jquery 总结的几种常用操作
    Mybatis 一对多
    HTML 子父窗口 iframe 超时 返回首页
    Struts 标签
    Spring + Mybatis 基于注解的事务
    机器学习实战-数据探索(变量变换、生成)
    机器学习实战-数据探索(变量变换、生成)
    Pandas matplotlib 无法显示中文 Ubuntu16.04
    Pandas matplotlib 无法显示中文 Ubuntu16.04
    Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.
  • 原文地址:https://www.cnblogs.com/liuyanan/p/10083375.html
Copyright © 2011-2022 走看看