• 微信小程序中的WXS语法


    WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。

    在wxml页面中,只能在插值{{ }}中写简单的js表达式,而不能调用方法。wxs就是为了能在页面中使用js而存在的。

    WXS 中不支持let和const,不支持箭头函数。

    注释:
    WXS 主要有 3 种注释的方法:

    // 方法一:单行注释
    <!-- wxml -->
    
    /*
    方法二:多行注释
    */
    
    /*
    方法三:结尾注释。即从 /* 开始往后的所有 WXS 代码均被注释

    变量:
    WXS 中的变量均为值的引用。没有声明的变量直接赋值使用,会被定义为全局变量。如果只声明变量而不赋值,则默认值为 undefined。var表现与javascript一致,会有变量提升。

    变量命名必须符合下面两个规则:

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


    数据类型:
    WXS 语言目前共有以下几种数据类型:string、number、boolean、object、array、function、date、regexp。

    生成 date 对象需要使用 getDate函数, 返回一个当前时间的对象。

    var date = getDate(1500000000000);

    生成 regexp 对象需要使用 getRegExp函数。

    var reg = getRegExp('(d)(?=(?:d{3}[+]?)+$)','g');

    模块:
    WXS 代码可以编写在 wxml 文件中的 <wxs> 标签内,或以.wxs 为后缀名的文件内。

    导出:
    每一个 .wxs 文件和 <wxs> 标签都是一个单独的模块。每个模块都有自己独立的作用域,即在一个模块里面定义的变量与函数,默认为私有的,对其他模块不可见。一个模块要想对外暴露其内部的私有变量与函数,只能通过 module.exports 实现。

    每个 wxs 模块均有一个内置的 module 对象。module 对象有一个exports属性,通过该属性,可以对外共享本模块的私有变量与函数。

    // utils.wxs
    var formatNumber = function(val){
    var reg = getRegExp('(d)(?=(?:d{3}[+]?)+$)','g');
    return (val>1000) ? val.toString().replace(reg, '$1,') : val;
    }
    module.exports = {
    formatNumber: formatNumber
    }

    导入:
    只能引用 .wxs 文件模块,且必须使用相对路径。
    wxs 模块均为单例,wxs 模块在第一次被引用时,会自动初始化为单例对象。多个页面,多个地方,多次引用,使用的都是同一个 wxs 模块对象。
    如果一个 wxs 模块在定义之后,一直没有被引用,则该模块不会被解析与运行。

    1.在.wxml中引用:
    <wxs> 标签的属性:

    module:当前 <wxs> 标签的模块名。必填字段。module 属性值的命名必须符合以下规则:首字符必须是字母(a-zA-Z),下划线(_);剩余字符可以是:字母(a-zA-Z),下划线(_), 数字(0-9)。有重复模块名则按照先后顺序覆盖(后者覆盖前者)。
    src:引用 .wxs 文件的相对路径。

    //home.wxml
    <wxs src="../../utils/utils.wxs" module="utils"></wxs>
    <text>{{utils.formatNumber(fanNum)}}</text>


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

    // utils.wxs
    var tools = require("./tools.wxs");
    console.log(tools.msg);
  • 相关阅读:
    input输入框与元素间有间隙
    显示3行,还要省略号(这个属性比较合适WebKit浏览器或移动端(绝大部分是WebKit内核的)浏览器)
    input file 修改按钮名称
    文本溢出处理
    移动WEB前端开发资源的一些素材
    带弹性的导航栏
    带重力的公告栏
    淘宝放大镜效果
    【规范】javascript 变量命名规则(转)
    常见的仿Flash图片轮播效果
  • 原文地址:https://www.cnblogs.com/heyiping/p/15084056.html
Copyright © 2020-2023  润新知