首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >小程序系列 - 1.小程序组成

小程序系列 - 1.小程序组成

原创
作者头像
程序员海军
修改于 2021-10-11 10:34:21
修改于 2021-10-11 10:34:21
4.2K0
举报
文章被收录于专栏:前端笔记ing前端笔记ing

数据绑定

代码语言:javascript
复制
# js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    time: (new Date()).toString()
  },
})
​
# wxml
    <text>当前时间:{{time}} </text>
​
​
# 属性动态改变
    <text data-test="{{test}}"> hello world</text>
##需要注意的是变量名是大小写敏感的,也就是说 {{name}} 和 {{Name}} 是两个不同的变量。

条件逻辑

代码语言:javascript
复制
<view wx:if="{{length > 5}}"> 1 </view>
<view wx:elif="{{length > 2}}"> 2 </view>
<view wx:else> 3 </view>
​
#可以控制渲染内容

列表渲染

代码语言:javascript
复制
#定义
    在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。
    
    
#格式
    <view wx:for="{{array}}">  //array  是在js data 中定义的数组
        {{index}}: {{item.message}}
    </view>
​
#  wx:for-item 指定数组当前元素的变量名,使用 wx:for-index 指定数组当前下标的变量名:
    <view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">
         {{idx}}: {{itemName.message}}
    </view> 
​
## wx:key 绑定 key  代表唯一标识

模板使用

代码语言:javascript
复制
#定义模板  name 属性为模板的名字
​
    <template name="msgItem">
      <view>
        <text> {{index}}: {{msg}} </text>
        <text> Time: {{time}} </text>
      </view>
    </template>
​
​
#使用模板
    #使用 is 属性,声明需要的使用的模板,然后将模板所需要的 data 传入
    <template is="msgItem" data="{{...item}}"/>
    
        就会显示
            <!-- 输出
            0: this is a template Time: 2016-06-18
            -->

模板引用

WXML 提供两种文件引用方式import和include。

import(有作用域的概念)

代码语言:javascript
复制
#在 item.wxml 中定义了一个叫 item的 template :
<template name="item">
  <text>{{text}}</text>
</template>
​
#在 index.wxml 中引用了 item.wxml,就可以使用 item模板:
<import src="item.wxml"/> 引用了 item.wxml中 指定的模板
<template is="item" data="{{text: 'forbar'}}"/>
    
    
    
## 注意
 import 有作用域的概念,C 引用 B,B 引用A,在C中可以使用B定义的 template,在B中可以使用A定义的 template ,但是C不能使用A定义的template 
 
 
 ## 引入完模板,直接用is 只使用模板
    <import src="b.wxml"/> #导入模板
    <template is="B"/>  # 使用模板
​

include (拷贝整个代码,除了该页面template)

代码语言:javascript
复制
<include src="header.wxml"/>
​
<view> body </view>
​
<include src="footer.wxml"/>

WXSS样式

样式引用

代码语言:javascript
复制
@import './test_0.wxss'

内联样式

代码语言:javascript
复制
<!--内联样式-->
<view style="color: red; font-size: 48rpx"></view>
​
# 小程序支持动态更新内联样式:
<view style="color: {{eleColor}}; font-size: {{eleFontsize}}"></view>

模块化

  • 小程序中可以将任何一个JavaScript 文件作为一个模块,通过module.exports 或者 exports 对外暴露接口
代码语言:javascript
复制
// moduleA.js
module.exports = function( value ){
  return value * 2;
}
​
​
​
// B.js
​
// 在B.js中引用模块A
var multiplyBy2 = require('./moduleA')
var result = multiplyBy2(4)
​
​
​

脚本执行顺序

代码语言:javascript
复制
当 app.js 执行结束后,小程序会按照开发者在 app.json 中定义的 pages 的顺序,逐一执行。

作用域

代码语言:javascript
复制
a.js 不可以直接访问 b.js 中的局部变量;
#使用全局变量,可以通过全局函数 getApp() 获取全局的实例,并设置相关属性值,来达到设置全局变量的目的
​
// a.js
// 获取全局变量
var global = getApp()
global.globalValue = 'globalValue'
​
​
// b.js
// 访问全局变量
var global = getApp()
console.log(global.globalValue) // 输出 globalValue
​
​
​
​
#只有在 a.js 比 b.js 先执行才有效,当需要保证全局的数据可以在任何文件中安全的被使用到,那么可以在 App() 中进行设置
​
​
// app.js
App({
  globalData: 1
})
​
​
​
// a.js
// 局部变量
var localValue = 'a'
​
// 获取 global 变量
var app = getApp()
​
// 修改 global 变量
app.globalData++  // 执行后 globalData 数值为 2
​
​
​

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 数据绑定
  • 条件逻辑
  • 列表渲染
  • 模板使用
  • 模板引用
    • WXML 提供两种文件引用方式import和include。
  • import(有作用域的概念)
  • include (拷贝整个代码,除了该页面template)
  • WXSS样式
  • 样式引用
  • 内联样式
  • 模块化
  • 脚本执行顺序
  • 作用域
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档