微信小程序------框架

news2024/12/24 8:33:59

目录

视图层

WXML

数据绑定

列表渲染

条件渲染

 模板

wsx事件

逻辑层

生命周期

 跳转


视图层

WXML

WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。

先在我们的项目中增加四个界面,分别是a,b,c,d.(名字可以根据自己来)

在项目的主体中找到 app.json 这个文件进行增加以上四个文件。

在该文件中找到 pages ,输入"pages/a/a"会自动生成

数据绑定

在我们的创建的a.wxml页面中编写代码

然后去我们的a.js的data中编写代码

在模拟器中可以看到的效果

列表渲染

接着在我们的a.wxml中编写代码

 再在我们的a.js中编写代码

效果

条件渲染

再去我们的a.wxml中编写代码

再回到a.js中的data编写代码 

效果

 

 模板

在a.wxml中编写代码

​
<!--pages/a/a.wxml-->
<text>pages/a/a.wxml</text>
<view>{{message}}</view>
<view wx:for="{{array}}"> {{item}} </view>
<view wx:for="{{users}}" wx:key="id">用户编号: {{item.id}}; 用户姓名:{{item.name}} </view>


<!--wxml-->
<view wx:if="{{view == '1'}}"> 喜羊羊 </view>
<view wx:elif="{{view == '2'}}"> 美羊羊 </view>
<view wx:else="{{view == '3'}}"> 沸羊羊 </view>


<!--wxml-->
<template name="staffName">
  <view>
    FirstName: {{firstName}}, LastName: {{lastName}}
  </view>
</template>

<template is="staffName" data="{{...staffA}}"></template>
<template is="staffName" data="{{...staffB}}"></template>
<template is="staffName" data="{{...staffC}}"></template>

​

再回到a.js中的data编写代码

效果

 

wsx事件

在a.wxml中编写代码

<!--pages/a/a.wxml-->
<text>pages/a/a.wxml</text>
<view>{{message}}</view>
<view wx:for="{{array}}"> {{item}} </view>
<view wx:for="{{users}}" wx:key="id">用户编号: {{item.id}}; 用户姓名:{{item.name}} </view>


<!--wxml-->
<view wx:if="{{view == '1'}}"> 喜羊羊 </view>
<view wx:elif="{{view == '2'}}"> 美羊羊 </view>
<view wx:else="{{view == '3'}}"> 沸羊羊 </view>


<!--wxml-->
<template name="staffName">
  <view>
    FirstName: {{firstName}}, LastName: {{lastName}}
  </view>
</template>

<template is="staffName" data="{{...staffA}}"></template>
<template is="staffName" data="{{...staffB}}"></template>
<template is="staffName" data="{{...staffC}}"></template>

<view id="tapTest" data-hi="Weixin" data-meetingSteate="6" bindtap="tapName"> Click me! </view>

去a.js中编写代码

tapName: function(event) {
    console.log(event),
    console.log(event.target.dataset)
  },

效果

逻辑层

生命周期

 跳转

先在项目app.json中添加以下代码

"tabBar": {
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页"
    }, {
      "pagePath": "pages/a/a",
      "text": "a页面"
    }, {
      "pagePath": "pages/b/b",
      "text": "b页面"
    }, {
      "pagePath": "pages/c/c",
      "text": "c页面"
    }, {
      "pagePath": "pages/d/d",
      "text": "d页面"
    }]
  },

再回到a.wxml中编写代码

<!--pages/a/a.wxml-->
<text>pages/a/a.wxml</text>
<view>{{message}}</view>
<view wx:for="{{array}}"> {{item}} </view>
<view wx:for="{{users}}" wx:key="id">用户编号: {{item.id}}; 用户姓名:{{item.name}} </view>


<!--wxml-->
<view wx:if="{{view == '1'}}"> 喜羊羊 </view>
<view wx:elif="{{view == '2'}}"> 美羊羊 </view>
<view wx:else="{{view == '3'}}"> 沸羊羊 </view>


<!--wxml-->
<template name="staffName">
  <view>
    FirstName: {{firstName}}, LastName: {{lastName}}
  </view>
</template>

<template is="staffName" data="{{...staffA}}"></template>
<template is="staffName" data="{{...staffB}}"></template>
<template is="staffName" data="{{...staffC}}"></template>

<view id="tapTest" data-hi="Weixin" data-meetingSteate="6" bindtap="tapName"> Click me! </view>

<button bindtap="a2b">a页面跳b页面</button>
<button bindtap="a2c">a页面跳c页面</button>

 在a.js中编写代码

// pages/a/a.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
      message:"俺可是懒大王",
      array:[1,2,3,4,5],
      users:[{id:1,name:'灰太狼'},{id:2,name:'红太狼'},{id:3,name:'蕉太狼'}],
      view:3,
      staffA: {firstName: '掌上明猪', lastName: '小黑猪'},
      staffB: {firstName: '无价之宝', lastName: '姿宝宝'},
      staffC: {firstName: '嘤嘤狂吠', lastName: '小黑狗'}
  },

  tapName: function(event) {
    console.log(event),
    console.log(event.target.dataset)
  },
a2b:function() {
  wx.switchTab({
    url: '/pages/b/b',
  })
},

a2c:function() {
  wx.switchTab({
    url: '/pages/c/c',
  })
},
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log("a.onload");
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    console.log("a.onReady");
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    console.log("a.onShow");
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    console.log("a.onHide");
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    console.log("a.onUnload");
  },

再去我们的c.wxml中编写代码

<!--pages/c/c.wxml-->
<text>pages/c/c.wxml</text>
<button bindtap="c2b">c页面跳b页面</button>
<button bindtap="c2d">c页面跳d页面</button>

c.js中编写代码

// pages/c/c.js
Page({

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

  },


  c2d:function() {
    wx.switchTab({
      url: '/pages/d/d',
    })
  },
  
  c2b:function() {
    wx.switchTab({
      url: '/pages/b/b',
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log("c.onload");
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    console.log("c.onReady");
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    console.log("c.onShow");
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    console.log("c.onHide");
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    console.log("c.onUnload");
  },

效果

 okok,今天就到这里啦,下班下班!!!!!!!!!!!!!!!!!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1098719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GitLab(1)——GitLab安装

目录 一、使用设备 二、使用rpm包安装 Gitlab国内清华源下载地址&#xff1a; ①下载命令如下&#xff1a; ②安装命令如下&#xff1a; ③删除rpm包 ④配置 ⑤重载 ⑥重启 ⑦配置自启动 ⑧打开8989端口并重启防火墙 三、GitLab登录 ①访问GitLab的URL ②输入用户…

scratch身高统计 2023年9月中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析

目录 scratch身高统计 一、题目要求 1、准备工作 2、功能实现 二、案例分析

二维码智慧门牌管理系统:构建未来社区管理新典范

文章目录 前言一、系统概述二、系统优势三、多领域应用四、未来展望 前言 在科技的迅猛发展下&#xff0c;我们的生活正朝着智能化迈进。最近&#xff0c;备受瞩目的“二维码智慧门牌管理系统”为社区管理带来了一场革命&#xff0c;通过建立标准要素之间的关系&#xff0c;重…

关于python pytorch 与CUDA版本相关问题

首先在终端中输入python进入python交互式环境 import torch print(torch.__version__) #注意是双下划线官网&#xff1a;https://pytorch.org/get-started/previous-versions/ CUDA Toolkit版本及可用PyTorch对应关系总结&#xff08;参考官网&#xff09; cuda版本确定后&a…

UI自动化的适用场景,怎么做?

经常有人会问&#xff0c;什么样的项目才适合进行UI自动化测试呢&#xff1f;UI自动化测试相当于模拟手工测试&#xff0c;通过程序去操作页面上的控件。而在实际测试过程中&#xff0c;经常会遇到无法找到控件&#xff0c;或者因控件定义变更而带来的维护成本等问题。 哪些场…

iOS代码混淆-从入门到放弃

​ 目录 1. 什么是iOS代码混淆&#xff1f; 2. iOS自动代码混淆的方法是什么&#xff1f; 3. iOS代码混淆的作用是什么&#xff1f; 4. 怎么样才能做到更好的iOS代码混淆&#xff1f; 总结 参考资料 1. 什么是iOS代码混淆&#xff1f; 代码混淆是指将程序中的方法名、属…

Numpy 从零快速入门教程

NumPy 介绍 什么是 NumPy? NumPy是Python中科学计算的基础包。它是一个Python库&#xff0c;提供多维数组对象&#xff0c;各种派生对象&#xff08;如掩码数组和矩阵&#xff09;&#xff0c;以及用于数组快速操作的各种API&#xff0c;有包括数学、逻辑、形状操作、排序、…

leetcode-49.字母异位词分组

1. 题目 2. 解答 #include <stdio.h> #include <stdlib.h> #include <string.h>#define MAX_STRLEN (10000 1) #define MAX_CHARLEN (100 1)char map[128] {0}; char map_start[128] {0};void solve(char input[MAX_STRLEN][MAX_CHARLEN], int num) {in…

自学\跳槽\转行做网络安全行业的一些建议

前言 前段时间&#xff0c;知名机构麦可思研究院发布了《2022年中国本科生就业报告》 &#xff0c;其中详细列出近五年的本科绿牌专业&#xff0c;其中&#xff0c;信息安全位列第一。 网络安全前景 对于网络安全的发展与就业前景&#xff0c;想必无需我多言&#xff0c;作为当…

最好的开放式蓝牙耳机有哪些?排名前五的开放式耳机五强

越来越多的人开始选择蓝牙耳机作为他们的音频解决方案。蓝牙耳机市场提供了各式各样的选择&#xff0c;不仅有常见的头戴式、耳塞式和半入耳式&#xff0c;还有一种备受欢迎的"开放式耳机"。今天&#xff0c;我将向大家介绍一些优秀的开放式蓝牙耳机款式&#xff0c;…

OTN的7层结构

文章目录 一、国际规定OTN的7层结构二、类比OTN的7层结构三、实际网络OTN的7层结构OTN分层结构的作用 OTN&#xff08;Optical Transport Network&#xff0c;光传送网&#xff09;是一个层次化网络&#xff0c;业务信号在不同层次之间进行传输。 一、国际规定OTN的7层结构 根…

将中文名格式化输出为英文名

要求&#xff1a; 编写Java程序&#xff0c;输入样式为&#xff1a;Zhong wen ming的人名&#xff0c;以 Ming,Zhong.W 的形式打印出来。其中.W是中间单词的首字母&#xff1b;例如输入”Willian Jefferson Clinton“,输出形式为&#xff1a;Clinton,Willian.J public static …

鸿蒙OS app开发环境搭建

鸿蒙OS是华为开源的支持移动设备或者物联网设备的操作系统&#xff0c;本文主要描述鸿蒙OS应用开发环境搭建。 如上所示&#xff0c;从鸿蒙OS官方网站下载应用开发工具DevEco Studio的最新版本 如上所示&#xff0c;DevEco Studio安装完成&#xff0c;安装与配置nodejs、ohpm以…

树莓派javaws launch.jnlp远程启动服务器

需要登录到IPMI进行重启&#xff0c;目前使用的树莓派系统&#xff0c;记录下在Ubuntu桌面系统中打开jnlp的操作&#xff1a; sudo apt -y install icedtea-netx javaws viewer.jnlp 运行上述命令后界面如下所示&#xff1a; 使用的是系统自生成的证书&#xff0c;直接点击yes…

同为科技(TOWE)关于风力发电雷电防护的解决方案

风能作为一种可再生清洁能源&#xff0c;是国家新能源发展战略的重要组成部分。我国风能开发潜力高达2.510GW以上&#xff0c;近年来风力发电机组逐年增加&#xff0c;截止到2022年&#xff0c;全国风电装机容量约3.5亿千瓦&#xff0c;同比增长16.6%。然而&#xff0c;由于风力…

关于Skywalking Agent customize-enhance-trace对应用复杂参数类型取值

对于Skywalking Agent customize-enhance-trace 大家应该不陌生了&#xff0c;主要支持以非入侵的方式按用户自定义的Span跟踪对应的应用方法&#xff0c;并获取数据。 参考https://skywalking.apache.org/docs/skywalking-java/v9.0.0/en/setup/service-agent/java-agent/cust…

【MATLAB源码-第48期】基于matlab的16QAM信号盲解调仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 16QAM (16个象限幅度调制) 是一种广泛使用的数字调制技术。在无线和有线通信系统中&#xff0c;为了在固定的带宽内发送更多的信息&#xff0c;高阶调制如16QAM被使用。下面是16QAM盲解调的基本步骤、优缺点及应用场景。 16Q…

C语言系统化精讲(五): 循环控制语句

文章目录 一、C语言while循环和do while循环详解1.1 while循环1.2 do-while循环 二、C语言for循环(for语句)详解2.1 基本使用2.2 for循环的变体2.3 for语句中的逗号应用 三、C语言break和continue用法详解(跳出循环)3.1 break关键字3.2 continue语句 四、C语言循环嵌套详解五、…

讲解Windows系统中如何使用Python读取图片的元数据【Metadata】

文章目录 简介图像元数据如何查看图像元数据pyexiv2pyexiv2读取图片的元数据的函数接口主要部分pyexiv2的EXIF元数据说明 代码示例参考资料 简介 我们可以使用pyexiv2这个Python第三方工具在Windows系统中包读取图片文件的元数据Metadata。其中&#xff0c;经常会使用的图片元…

你了解供应链云仓系统源码里的5个核心功能吗?

为您详细介绍供应链云仓系统源码中的核心功能 供应链云仓系统是一种基于互联网的供应链管理系统&#xff0c;它利用云计算和大数据技术&#xff0c;帮助企业优化物流与库存管理、提升供应链的效率和灵活性。在供应链云仓系统的源码中&#xff0c;有许多关键功能可以帮助企业实现…