微信小程序开发入门教程(三)

暑期实训1-微信开发者工具 微信小程序开发者工具介绍(下载,使用) 阅读详情

背景

上一篇文章我们主要介绍了微信小程序的几个配置,其中app.json是对于微信小程序全局的配置,page.json是对于小程序页面的配置,project.config.json是对于小程序开发工具的配置,sitemap.json是用于配置小程序和页面是否可以被微信检索。这篇文章主要用于介绍微信小程序的页面构成。

页面构成

从事过网页编程的人知道,网页编程采用的是 HTML + CSS + JS 这样的组合,其中 HTML 是用来描述当前这个页面的结构,CSS 用来描述页面的样子,JS 通常是用来处理这个页面和用户的交互。其实微信小程序的页面也相当于一个网页,其中的构成也与之类似。如下图所示即是一个页面index包含的内容,其中index.json上篇文章已经提到是页面的配置,其他的如index.wxml与HTML类似,用于定于微信小程序的页面结构,index.wxss则与CSS类似,是用于描述页面的样子,而index.js是用于微信小程序的交互。

WXML

以下代码显示了我们建立的测试项目的index.wxml的内容,可以看出与 HTML 非常相似,WXML 由标签、属性等等构成。但是也有很多不一样的地方,主要有两点不同。

<!--index.wxml-->
<view class="container">
  <view class="userinfo">
    <block wx:if="{{canIUseOpenData}}">
      <view class="userinfo-avatar" bindtap="bindViewTap">
        <open-data type="userAvatarUrl"></open-data>
      </view>
      <open-data type="userNickName"></open-data>
    </block>
    <block wx:elif="{{!hasUserInfo}}">
      <button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 获取头像昵称 </button>
      <button wx:elif="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
      <view wx:else> 请使用1.4.4及以上版本基础库 </view>
    </block>
    <block wx:else>
      <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
      <text class="userinfo-nickname">{{userInfo.nickName}}</text>
    </block>
  </view>
  <view class="usermotto">
    <text class="user-motto">{{motto}}</text>
  </view>
</view>
标签名称不同且封装了更多组件

往往写 HTML 的时候,经常会用到的标签是 div, p, span,开发者在写一个页面的时候可以根据这些基础的标签组合出不一样的组件,例如日历、弹窗等等。换个思路,既然大家都需要这些组件,为什么我们不能把这些常用的组件包装起来,大大提高我们的开发效率。

从上边的例子可以看到,小程序的 WXML 用的标签是 view, button, text 等等,这些标签就是小程序给开发者包装好的基本能力,微信小程序还提供了地图、视频、音频等等组件能力。微信小程序组件中提供了很多封装好的组件,这里就不过多介绍,以后会专门写一篇文章结合例子详细介绍微信小程序提供的组件。

在这里我还是忍不住想要解释一下为什么这里不过多介绍细节,这就牵扯到这篇文章的主题是宿主环境和页面结构而不是具体实现,而且微信小程序提供了很丰富的组件,如果都详细介绍则详略失当,让人抓不住重点。这又让我想到了之前初中学习语文关于陶渊明读书方法的争论,到底是略其大观“不求甚解”,还是应该追根问底,对我个人而言,我觉得两种方法都对,只是时机不同,当完全接触一个新事物的时候,我们就应该略其大观,在整体上有一个认识,这时候不要过多追究细节,否则就会深陷其中难以自拔。当我们对于一个新的事物已经有了整体上的认识,想继续研究则需要选择一个方面,一丝不苟不放过一个细节地去研究,这样才能深刻的理解和应用。这一系列的前几篇文章都是略其大观,不会牵扯大多细节,希望大家能够对微信小程序有一个整体认识即可,好了废话到此结束。

多了一些 wx:if 这样的属性以及 {{ }} 这样的表达式

在网页的一般开发流程中,我们通常会通过 JS 操作 DOM (对应 HTML 的描述产生的树),以引起界面的一些变化响应用户的行为。例如,用户点击某个按钮的时候,JS 会记录一些状态到 JS 变量里边,同时通过 DOM API 操控 DOM 的属性或者行为,进而引起界面一些变化。当项目越来越大的时候,你的代码会充斥着非常多的界面交互逻辑和程序的各种状态变量,显然这不是一个很好的开发模式,因此就有了 MVVM 的开发模式(例如 React, Vue),提倡把渲染和逻辑分离。简单来说就是不要再让 JS 直接操控 DOM,JS 只需要管理状态即可,然后再通过一种模板语法来描述状态和界面结构的关系即可。这么说可能比较抽象,以我们建立的测试项目为例,我们在屏幕中显示了“Hello World”,那具体是如何实现的呢。

在WXML中我们声明了一个变量motto

    <text class="user-motto">{{motto}}</text>

在JS中我们将motto赋值为“Hello World”,与此同时我们还可通过函数去改变motto的值从而更改页面状态,而不需要直接去操控DOM节点。

 data: {
    motto: 'Hello World',
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    canIUseGetUserProfile: false,
    canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName') // 如需尝试获取用户信息可改为false
  }

通过 {{ }} 的语法把一个变量绑定到界面上,我们称为数据绑定。仅仅通过数据绑定还不够完整的描述状态和界面的关系,还需要 if/else, for等控制能力,在小程序里边,这些控制能力都用 wx: 开头的属性来表达。

WXSS

WXSS 具有 CSS 大部分的特性,小程序在 WXSS 也做了一些扩充和修改。

  • 新增了尺寸单位。在写 CSS 样式时,开发者需要考虑到手机设备的屏幕会有不同的宽度和设备像素比,采用一些技巧来换算一些像素单位。WXSS 在底层支持新的尺寸单位 rpx ,开发者可以免去换算的烦恼,只要交给小程序底层来换算即可,由于换算采用的浮点数运算,所以运算结果会和预期结果有一点点偏差。

  • 提供了全局的样式和局部样式。和前边 app.json, page.json 的概念相同,你可以写一个 app.wxss 作为全局样式,会作用于当前小程序的所有页面,局部页面样式 page.wxss 仅对当前页面生效。

  • 此外 WXSS 仅支持部分 CSS 选择器

JS

一个服务仅仅只有界面展示是不够的,还需要和用户做交互:响应用户的点击、获取用户的位置等等。在小程序里边,我们就通过编写 JS 脚本文件来处理用户的操作。还是以我们建立的测试项目来说明,下面左图是测试项目的启动页面,当用户点击时就会发生页面跳转,跳转到右边所示的页面。

这是如何实现的呢?首先看一下index.wxml,其相关内容如下,可以看到view有一个属性bindtap,这是用来响应用户点击操作的,它的属性值是bindViewTap,这是一个函数名,该函数定义了用户点击时该如何反应,这个函数的定义则在index.js。

WXML相关内容

 <block wx:if="{{canIUseOpenData}}">
      <view class="userinfo-avatar" bindtap="bindViewTap">
        <open-data type="userAvatarUrl"></open-data>
      </view>
      <open-data type="userNickName"></open-data>
 </block>

JS相关内容

 bindViewTap() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  }

最后

有兴趣可以关注公众号QStack,会定期分享一些文章和免费的学习资源。

微信小程序开发入门教程 含视频 有源码 微信小程序开发入门教程   做任何程序开发要首先找到其官方文档,我们先来看看其有哪些官方文档。 微信小程序开发文档链接为:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html,如下图:     这里就是做微信小程序开发的全部官方文档。 知道了文档的位置,下面我们来介绍下如何做一个微信小程序开发:  /****** 阅读详情

相关推荐

【微信小程序开发小白零基础入门】微信小程序入门【建议收藏】

微信小程序入门 前言 随着科技的不断进步,很多功能将会开放,那么很多需求也将会因为现实而得到满足,这是一种不需要下载和安装就可以使用的应用软件。用户只需扫描和搜索就可以打开应用程序。它很容易使用,而且很容易实现。小程序带来了巨大的流量,吸引了很多大的人和企业家前来追踪,也显示出它强大的生命力。小程序是下一个被确定为互联网新品种的程序,信已经成为不可缺少的交流工具,小程序依附于微信,用户搜索起来也会更方便,其实这就是小程序发展的前景和优势。 提示:以下是本篇文章正文内容,下面案例可供参考 一、小程序的概

智慧云工具箱的博客 3万+

使用微信开发者工具新建小程序报错

提示:提示请使用2.2.3或以上的基础库以使用云能力     解决办法: 工具栏中点击“详情”: 在下面页面中选择2.2.3以上的版本即可:

E20714076的博客 2277

微信小程序开发入门教程(详细版)

实现滚动区域时,需设置固定高度并通过CSS控制。app.json 配置示例。Page.js 基本结构。

lumutong的博客 1483

微信小程序开发——请使用1.4.4及以上版本基础库 ?

{{}}

qq_73240285的博客 238

HBuilderX开发微信小程序常见问题及入门教程下载

HBuilderX开发微信小程序常见问题 1. 用HBuilderX开发微信小程序时,在开发过程中,需要保持微信开发者工具是打开的。 2. 首次使用HBuilderX,需要先配置小程序开发者工具的路径,才能运行成功。 3. 首次开发时需要在“微信开发者工具”中设置端口 移动开发HBuilderX开发微信小程序入门教程下载

luckyext的博客 807

星辰超级智能体TeleClaw桌面版深度体验:央企出品的本地AI生产力助手

中国电信星辰超级智能体TeleClaw桌面版是一款本地化AI生产力助手,主打数据安全、自主高效和深度协同。作为程序员,作者实测其核心功能包括本地数据处理、长期记忆、定时任务和代码开发辅助,特别适合敏感数据处理和日常办公自动化。相比在线AI工具,TeleClaw在数据安全、合规性和自动化能力方面优势明显,但技能生态和响应速度仍有提升空间。总体评价为务实高效的本地AI助手,尤其适合对数据安全有要求的企业用户。

研究中.... 1364

微信小程序开发快速上手——工程创建与构成

本文我们主要介绍如何创建一个小程序以及一个小程序工程的基本结构(开发工具版本:1.05.2204250 | 1.06.2204250)

best2012power的博客 2300

自制《大侠狂想曲》修改器:内存修改、加速与一键安装全攻略

游戏修改器是玩家优化游戏体验的常用工具,其核心原理是通过内存修改技术,在游戏进程运行时动态改写数值。常见实现路径是借助Cheat Engine扫描并追踪数据地址,再通过编程语言调用系统API完成读写。这种技术能有效解决重复刷资源带来的枯燥感,特别适用于单机RPG中想快速体验多剧情线却不想重刷资源的情形。本文以《大侠狂想曲》为例,完整拆解了从CE定位金钱与好感度内存地址,到编写C#脚本实现游戏加速、一键增加铜钱与NPC好感度,再到用Inno Setup打包生成一键安装器的全过程,并总结了数值弹回、剧情不触发、

weixin_30368981的博客 1485

微信小程序入门教程+案例demo

微信小程序入门教程+案例demo 尊重原创,转载请注明出处:原文查看惊喜更多 http://blog.csdn.net/qq137722697 首先摆在好姿态,——微信小程序开发也就那么回事。你只需要一点点css(真的只要一点点)的基础就可以了。 认清微信小程序开发其实,我觉得小程序就是将微信官方提供20+个基础组件(目前有26个)进行排列组合,然后加上一些css样式,对用户的操作进行反馈(调

大力哥的博客 16万+

揭秘个人开发者接支付宝的‘野路子’:不用企业资质,用Python模拟扫码转账与回调监听

本文探讨了个人开发者如何通过Python模拟支付宝扫码转账与回调监听的技术实现,解析了支付宝URL协议格式,并设计了本地化的支付状态监听方案。文章强调该方法仅用于技术研究,实际应用需遵守支付宝官方接口和金融合规要求。

weixin_30736301的博客 409

《探秘 BME680温度湿度气压气体传感器模块:环境感知的卓越之选》:此文为AI自动生成

BME680 是一款由博世公司推出的集成环境传感器模块,在环境监测和物联网等领域中发挥着重要作用。它能够同时测量温度、湿度、气压和气体浓度等多个环境参数,为各种应用提供准确可靠的环境数据。该模块采用小巧的封装形式,便于集成到各种设备中,无论是智能家居、可穿戴设备还是工业监测系统,都能轻松适配。例如,在智能家居系统中,BME680 模块可以监测室内环境参数,如温度、湿度、气压和空气质量等。通过与智能家居控制器或智能手机应用程序的连接,用户可以实时了解室内环境状况,并根据需要进行调整。

zheng_ruiguo的专栏 1874

微信小程序开发入门教程

现在微信小程序越来越火了,相信不少人都通过各种途径学习过微信小程序或者尝试开发,作者也是如此,特此将学习成果与诸位分享让诸位少走弯路!!!

万维网连五洲,二进制写尽天下事,喜欢结识新伙伴寻找志同道合的朋友,欢迎一起探讨学习 5084

LS-Dyna模态分析实战:从模型构建到结果解读的全流程指南

本文提供了一份详尽的LS-Dyna模态分析实战指南。文章系统讲解了如何利用LS-Dyna内置的隐式求解器进行特征值求解,从模型构建、几何清理、材料与连接设置,到核心的边界条件与隐式求解控制(如*CONTROL_IMPLICIT_EIGENVALUE),最后完成计算并解读频率与振型结果。旨在帮助工程师在熟悉的环境中高效完成结构振动特性分析,为后续动态响应分析奠定基础。

info6的博客 264

零基础入门微信小程序开发

本课程是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信小程序的核心概念作为主线,介绍配置文件、页面样式文件、JavaScript 的基本知识并以指南针为例对基本知识进行扩展,另外加上开发工具的安装、小程序发布等内容,共 9 篇文章。

GitChat 34万+

Opencv相机校准之棋盘格标定

Reference: https://yq.aliyun.com/articles/62472

y459541195的博客 3万+

从CentOS迁移到openEuler 24.03 LTS:手把手教你部署Java+MySQL+Redis+Nginx全栈环境

本文详细指导如何从CentOS迁移到openEuler 24.03 LTS,并部署Java+MySQL+Redis+Nginx全栈环境。涵盖系统配置、软件安装、性能优化及环境验证,助力企业级用户高效完成服务器迁移与部署。

weixin_26938645的博客 390

微信小程序开发环境搭建

本文介绍了搭建小程序开发环境的步骤,包括注册小程序、安装微信小程序开发工具(Stable版本)、创建项目等内容。同时,还介绍了使用uni-app开发小程序的环境搭建步骤,包括安装HBuilderX开发工具、安装nvm(Node Version Manager)以及创建uni-app项目等内容。通过本文的指导,读者可以快速搭建小程序开发环境并开始开发自己的小程序应用。

zcs2312852665的博客 6262

通过一个具体的例子,讲解 SAP Cloud Platform Integration(CPI) 的使用方法

最近笔者由于项目需要,又得学习一个新工具:SAP Cloud Platform Integration,简称 CPI,以前又叫做HCI - HANA Cloud Platform Integration Service.笔者想通过本文,把使用这个工具的第一手体会,分享给曾经用过SAP CRM中间件,但尚未有机会接触到CPI的朋友们。之所以本文标题里把SAP CRM中间件和SAP CPI关联在一起,是因为二者同广义上说,扮演的都是系统集成里中间件的角色。SAP ERP和CRM通过qRFC进行业务数据同步,而中

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2276

微信小程序入门教程 --(保姆级)

小程序入门保姆级教程

叶子的博客 8921

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

如何开发一个个人微信小程序,微信小程序开发入门教程

做任何程序开发要首先找到其官方文档,我们先来看看其有哪些官方文档。 微信小程序开发文档链接为:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html,如下图: 这里就是做微信小程序开发的全部官方文档。 知道了文档的位置,下面我们来介绍下如何做一个微信小程序开发: 第一步: 下载微信小程序开发者工具并安装,下载路径: https://mp.weix...

黎想 12万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

微信小程序入门教程

对于从入门学微信小程序,可以看阮一峰的教程。 主要有4篇: 《微信小程序入门教程之一:初次上手》,链接:http://www.ruanyifeng.com/blog/2020/10/wechat-miniprogram-tutorial-part-one.html 《微信小程序入门教程之二:页面样式》,链接:http://www.ruanyifeng.com/blog/2020/10/wecha...

shykevin的博客 609

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【uniapp】uniapp开发微信小程序入门教程

HBuilderx中uniapp开发微信小程序入门教程,uniapp开启微信开发者工具

TTong_190502的博客 1581
上一篇: 聊聊自学编程
下一篇: 微信小程序开发入门教程(四)
QStack
博客等级 码龄6年 30粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值