微信小程序开发

2023-05-16

官方文档 https://developers.weixin.qq.com/miniprogram/dev

微信小程序基础(一)

安装微信开发者工具

安装地址 https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

下载以后进行安装

打开微信开发者工具

打开工具以后,创建项目(选择小程序项目创建),因为是开发环境,我们没有appid,所以选择体验版,这个时候就不用输入appid

程序的目录结构

  1. app.js

    相当于vue里面的main.js,是整个程序的启动文件,小程序是从这个文件开始启动的

    在这个程序里面,它有两个部分

    • onLounch程序在启动的时候会自己执行,它只会执行一次,就是程序执行的时候

    • globalData这个代表全局数据

      在这里,可以把它理解成vuex里面的state全局状态

  2. app.json

    这个文件是当前的项目的配置文件,相当于我们的package.json文件在这个文件里面,几个地方需要特别注意

    • pages:这个选项,用来声明我们当前这个程序有多少个页面

      注意事项:pages数组里面,谁在第一项,那么,小程序启动以后,默认就显示那个页面

      当我们在pages的目录下面新建page页面的时候,它会自动在这个地方去添加一行代码

      同时,删除页的时候,如果把页面文件删了,那么,pages里面的东西也要同步删除

    • window:这个属项用来控制当前小程序的窗体信息,如果小程序的主体颜色,小程序的标题等信息

      
      "window": {
          "backgroundTextStyle": "light",         //设置字体样式
          "navigationBarBackgroundColor": "#fff", //设置背景颜色
          "navigationBarTitleText": "WeChat",   //设置标题
          "navigationBarTextStyle": "black"     //设置标题文字颜色
      }  
  3. app.wxss

    这个文件相当于全局css样式,在这里写了css样式以后,任何页面都可以直接使用里面的样式

  4. pages目录

    小程序里面,所有的页面都在这个里面,相当于vue程序里面的views目录或pages目录

    这个目录可以把它理解成我们vue当中的views目录,它相当于一个页面

    注意:里面的每个页面都又是一个单独的文件夹(后面详细介绍)

  5. utils目录

    与我们平常的utils是一样的类型,用来存放一些封装的工具与方法

    例如,我们之前所说的formatData这个方法,之前在vue当中,我们是自己封装的,现在,我们是直接 在小程序当中有可以使用这个方法了

微信小程序的页面配置

  1. 新建页面的步骤

    因为我们所有的页面都放在pages的目录下面,所以我们就从这里开始

    • 先新建一个空白的目录,取一个名子如list

    • 在新建的这个目录下面点击鼠标右键,选择新建Page,输入名称,这个时候,开发工具会自动帮我们创建四个文件list.wxml,list.wxss,list.js,list.json

    • 上面创建的这四个文件就是之前给大家提的页面的四种文件类型

    • 微信小程序的wxml

    wxml是微信小程序页面当中布局的地方,里面支持微信的标签库,它不支持普通的html标签库,其中常用的以下几种,我分别做对比

    https://developers.weixin.qq.com/miniprogram/dev/

    小程序标签网页标签说明
    <view><div>块级元素的代表
    <text><span>,<label>行内元素的代表
    <image><img>行内块级元素
    <input><input>表单类型元素`
    <input password="true"><input type='password'>密码类型
    <textarea><textarea>多行文本
    <picker><select>下拉选项
    <radio>, <checkbox>type='checkbox'单选,多选

    总结一下:微信小程序里面,wxml可以把它看成是html,但是它不是纯粹的HTML,它相当于Vue当中的组件<view就相当于一个view的组件,它所有的标签都是一个组件,都是基于virtual-DOM开发的

    因为是组件,所以它的标签不可以出现驼峰命名

  1. 微信小程序的样式文件wxss

    在小程序里面,也是通过css来控制页在的样式的,但是它的文件叫wxss不叫css

    微信小程序的样式文件分为两部分

    • 全局样式文件 app.wxss

    • 单一页面样式文件:某一个页面文件夹下面的.wxss文件,如list.wxss这个文件的样式只作用于list.wxml这个页面

      单一个的页面样式,相当于vue的style加不了scoped闭合

    • wxss里面采用flex弹性布局为基本-->其次采用position--->最后采用float布局

    • 微信小程序因为是运行在微信里面,所以它有注意样式的兼容性,但是我们不用考虑,因为在微信小程序的配置项里面有一个配置项postcss,我们只需要把它设置打开

    • 在微信的样式里面,如果要使用像素,推荐使用rpx样式而不使用px

      rpx是可变化的px,它会根据你的访问设备的像素调整大小,它有一个转换公式

      1px=1.8~2.2rpx

    • wxss里面,支持的选择器也就是我们的css选择器,少用id多用class

  2. 微信小程序的script文件javascript(wxs)

    在小程序里面,我们的所有事件,方法,生命周期等等代码都是写在.js的文件里面

    在这个页面的下面,都会有一个js文件,这个JS文件会调用Page()这个方法,这个方法里面接收一个对象参数{}

    在这个参数里面,有两个东西不可忽略

    • data属性

      这个属性主要用于托管当前wxml页面上面的数据,相当于vue里面的data

    • onLoad属性

      onLoad相当于页面加载的时候 ,只要页面被打开,都会被加载一次

配置微信小程序的启动页面

微信小程序在启动的一瞬间,会加载app.js这个文件,然后去执行onLaunch这个方法,然后再开始加载页面

 

  1. 微信小程序的样式文件wxss

    在小程序里面,也是通过css来控制页在的样式的,但是它的文件叫wxss不叫css

    微信小程序的样式文件分为两部分

    • 全局样式文件 app.wxss

    • 单一页面样式文件:某一个页面文件夹下面的.wxss文件,如list.wxss这个文件的样式只作用于list.wxml这个页面

      单一个的页面样式,相当于vue的style加不了scoped闭合

    • wxss里面采用flex弹性布局为基本-->其次采用position--->最后采用float布局

    • 微信小程序因为是运行在微信里面,所以它有注意样式的兼容性,但是我们不用考虑,因为在微信小程序的配置项里面有一个配置项postcss,我们只需要把它设置打开

    • 在微信的样式里面,如果要使用像素,推荐使用rpx样式而不使用px

      rpx是可变化的px,它会根据你的访问设备的像素调整大小,它有一个转换公式

      1px=1.8~2.2rpx

    • wxss里面,支持的选择器也就是我们的css选择器,少用id多用class

  2. 微信小程序的script文件javascript(wxs)

    在小程序里面,我们的所有事件,方法,生命周期等等代码都是写在.js的文件里面

    在这个页面的下面,都会有一个js文件,这个JS文件会调用Page()这个方法,这个方法里面接收一个对象参数{}

    在这个参数里面,有两个东西不可忽略

    • data属性

      这个属性主要用于托管当前wxml页面上面的数据,相当于vue里面的data

    • onLoad属性

      onLoad相当于页面加载的时候 ,只要页面被打开,都会被加载一次

配置微信小程序的启动页面

微信小程序在启动的一瞬间,会加载app.js这个文件,然后去执行onLaunch这个方法,然后再开始加载页面

问题:

  1. 如果让小程序知道那一个是首屏的页面?

  2. onLaunch这个方法到底干了些什么事情?

首先,微信小程序是通过app.json这个配置项来决定你小程序的配置的,并且在app.json里面,有两个非常重要的东西,第一个:pages,第二个window,而与页面相关的配置就在这个pages

我们再次打开app.json这个文件,然后会在app.json的配置项pages里面,找到我们刚刚创建的一个页面list,在这个配置项里面,排在第一位的就是启动以后的默认页面

 

微信小程序页面数据渲染

微信小程序它也是一套MVVM的框架,它也是基于数据绑定来进行的,它不可以进行DOM操作,也就是说它没有document这一个对象。也没有alert,confirm以及prompt这个方法,它页面上面所有的数据都是通过当前目录的JS下面的data来进行操作的,我们改变data里面的数据以后,它会自动的更新到页面上去

  • 双向数据绑定

    1. 普通渲染

      小程序里面,绑定数据我们使用双花括号{{}}

      
      <view>
        {{userName}}
       </view>  
      
      data: {
          userName:"软帝"
      },  
    2. 循环列表

      我们使用wx:for来循环绑定,它绑定的是一个数组,循环出来的每一项默认是item

      如果要改变这个item,需要设置 wx:for-item="a",这个时候,循环出来的每一次就都是a了

      循环的时候它会产生一个索引值,这个索引值是index,如果要改变这个index的值,那么,我们需要设置属性wx:for-index,如 wx:for-index='idx'

      
      <view wx:for="{{userList}}" wx:for-item="a" wx:for-index='idx' wx:key="idx">{{a}}-{{idx}}</view>  

      说明:如果没有加wx:key这个时候,在控制台会打印出一个警告信息

    3. 条件渲染

      微信在做界面渲染的时候,它可以根据某一些条件来渲染我们的页面,使用wx-if

      
      <view wx-if="{{1<2}}">
          这是条件渲染
      </view>  

      在vue里面,我们条件渲染有v-ifv-show两种方式,但是在微信小程序里面,它只有一种条件渲染就是wx-if

    注意事项:它与vue相比,vue在循环的时候需要使用一个key,同理,在小程序里面,它也需要一个wx:key

    同时,在渲染的过程当中,wx:for是小程序的循环,而vue则是v-for="(item,index) in list"


  • 单向数据绑定

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序开发 的相关文章

  • MySQL监控告警及可视化:Zabbix+Percona PMP实现(Part II)

    MySQL监控告警及可视化 xff1a Zabbix 43 Percona PMP实现 xff08 Part II xff09 PMP插件安装PMP监控脚本配置Web界面导入PMP模板 服务器清单如下 xff1a 服务器IP配置OS版本服务
  • 引用远程资源库中不存在的jar包,相关问题及解决方案

    问题背景 项目中需要用到远程资源库中不存在的jar包 xff0c 将jar包放在项目目录下 xff0c 并用 lt systemPath gt 的方式引用 xff0c windows系统本地调试的时候没问题 xff0c 部署到Linux能成
  • 彻底解决 error: Unable to find vcvarsall.bat

    1 windows上做Python开发 xff0c 搭环境还真不比Linux容易 error Unable to find vcvarsall bat这个错误眼熟吧 xff1f 凡是安装和操作系统底层密切相关的Python扩展 xff0c
  • ubuntu下解决微信不能发送图片的问题

    安装sudo apt install libjpeg62 i386 xff0c 可以解决ubuntu下不能发送微信截图的问题
  • dpkg安装deb缺少依赖包的解决方法--Ubuntu 16.04 LTS 安装网易云音乐

    一 去网易云音乐官网下载对应的安装包 我下载的是netease cloud music 1 0 0 2 amd64 ubuntu16 04 deb 二 开始安装 sudo dpkg span class hljs attribute i s
  • 个人号微信机器人API接口

    发送APP类消息 和发送小程序是同一个接口 xff0c 此接口可发送xml中包含appmsg的消息 xff0c 例如 xff1a 短视频 xff0c 直播 xff0c 音乐 xff0c 第三方APP等 请求URL xff1a http 域名
  • Fiddler抓包(下载安装及使用)

    一 下载安装 1 下载 官网链接 xff1a https www telerik com Fiddler Classic xff08 经典版 xff09 xff0c 这个版本是免费的 xff0c 不过只能在Windows上使用 Fiddle
  • URL&HTTP协议详解

    URL xff1a 统一资源定位符 这就意味着我们可以通过URL的方式去访问的资源 xff08 接口 xff09 URI xff1a 统一资源标识符 是一种抽象的概念 xff0c 本身没有具体去实现 一 URL URL是实现接口访问的第一步
  • CentOS7学习笔记(安装配置到常用命令)

    一 下载安装 访问linux org xff0c 选择centos xff0c 找到centos对应版本的镜像网站下载 新建虚拟机 安装 xff1a 语言默认英文 xff0c 最好不要改动 xff0c 不然有可能会有乱码问题 时区选择sha
  • Microsoft 365自定义安装,卸载Access、Publisher、Skype

    买电脑送的Office 2019只有Word Excel PowerPoint三件套 xff0c 一般情况都是够用的 xff0c 可以前往Microsoft 帐户 服务和订阅中下载一键安装 但是拥有Microsoft 365 xff08 原
  • Vimium如何使用

    Vimium是什么 vimium是一款支持全键盘操作浏览器的扩展 可以尽可能的解放鼠标 有一定的学习成本 xff0c 对本就拥有vim使用经验的人来说上手更容易 支持Chrome Edge Firefox 使用流畅后可以大大的提升浏览器的使
  • Linux 文件系统

    Linux 文件系统以及常见命令 Linux 文件系统block 与 inode文件类型权限目录树挂载 管道啥是管道管道的分类管道的实质 Linux 文件系统 在 Linux 中一切皆文件 xff0c 不仅仅是平时所使用的 txt pdf
  • 利用栈判断一个字符串是否为回文串

    include lt stdio h gt include lt string h gt 利用栈判断一个字符串是否为回文串 int main char a 101 s 101 int i len mid next top gets a 读入
  • Mysql 8.0 MGR部署限制和环境要求

    在mysql 8 0版本中 xff0c mgr功能进行了很大的改善和增强 xff0c 如果要部署组复制的服务器 xff0c 实例必须满足以下条件 xff1a 基础设置 xff1a 1 InnoDB存储引擎 disabled storage
  • ubuntu下安装vmware

    1 下载vmware xff0c https www vmware com cn products workstation pro workstation pro evaluation html 2 下载的vmware放到家目录下 3 ch
  • 使用devenv/MSBuild在命令行编译单个project

    一 使用devenv来build单个project devenv是VisualStudio的可执行程序 xff0c 一般安装在 C Program Files x86 Microsoft Visual Studio 10 0 Common7
  • 解决ROS常遇到的Couldn’t find executable named报错解决

    解决办法 xff1a 将执行文件打开权限允许作为程序执行文件
  • ubuntu下QtCreator启动无响应问题解决

    QtCreator正常使用 xff0c 系统重启后一打开就卡死 xff0c 无响应状态 xff0c 重装也没用 xff0c 查了半天才解决 解决方法 xff1a 删除系统配置目录下的QtProject文件夹 具体实施 xff1a 1 fin
  • PTA 数据结构 6-2 顺序表基本操作

    6 2 顺序表基本操作 xff08 10 分 xff09 本题要求实现顺序表元素的增 删 查找以及顺序表输出共4个基本操作函数 L是一个顺序表 xff0c 函数Status ListInsert Sq SqList amp L int po
  • Typora 的 markdown 语法

    Typora 的 markdown 语法 1 标题 使用简单的 ctrl 43 数字键 就可以快速完成各种级别的标题 也可以使用 表示一级标题 xff0c 表示二级标题 xff0c 以此类推 xff0c 有6个标题 2 下划线 ctrl 4

随机推荐

  • css弹性布局和相关属性

    弹性布局 弹性布局主要是解决移动端的问题 xff0c 但是并不代表它不能适用于PC端 xff0c 它最重要的技术就是一个叫弹性盒子 xff08 flexbox xff09 的东西 弹性盒子最主要的几个属性如下 display flex 这个
  • CSS动画

    CSS动画 CSS3的动画属性 下面的表格列出了 64 keyframes 规则和所有动画属性 xff1a 属性描述CSS 64 keyframes规定动画 3animation所有动画属性的简写属性 xff0c 除了 animation
  • JavaScript简介

    JavaScript 它是一种脚本语言 xff0c 提供页面与用户的交互途径 xff0c 主要包含三个方面的东西 ECMAScript ES 它主要是用来定义JavaScript的语法规范 xff0c 现在主流的版本是5 1 后期的主要部分
  • JavaScript 输出 语法

    JavaScript 显示方案 JavaScript 不提供任何内建的打印或显示函数 JavaScript 能够以不同方式 显示 数据 xff1a 使用 window alert 写入警告框使用 document write 写入 HTML
  • JavaScript 条件语句

    JavaScript 条件语句 条件语句 通常在写代码时 xff0c 您总是需要为不同的决定来执行不同的动作 您可以在代码中使用条件语句来完成该任务 在 JavaScript 中 xff0c 我们可使用以下条件语句 xff1a if 语句
  • JavaScript 循环

    JavaScript 支持不同类型的循环 xff1a for 循环代码块一定的次数for in 循环遍历对象的属性while 当指定的条件为 true 时循环指定的代码块do while 同样当指定的条件为 true 时循环指定的代码块 F
  • android系统logcat日志重定向到kernel,可以通过串口来输出

    修改system core rootdir init rc chmod 0660 sys power wake lock chmod 0660 sys power wake unlock 43 chmod 0660 proc kmsg St
  • JavaScript 数组知识图

  • javascript DOM 知识图

    HTML DOM 文档对象模型 当网页被加载时 xff0c 浏览器会创建页面的文档对象模型 xff08 Document Object Model xff09 主要目的就是把网页里面的元素当成对象一样支配 HTML DOM 定义了用于 HT
  • JavaScript 能够改变页面中的所有 HTML 元素

    JavaScript 能够改变页面中的所有 HTML 元素 改变 HTML 输出流 JavaScript 能够创建动态的 HTML 内容 xff1a 在 JavaScript 中 xff0c document write 可用于直接向 HT
  • audio 音频标签的使用 及实例

    audio 音频标签的使用 属性值描述autoplayautoplay如果出现该属性 xff0c 则音频在就绪后马上播放 controlscontrols如果出现该属性 xff0c 则向用户显示音频控件 xff08 比如播放 暂停按钮 xf
  • jQuery简介及简单语法

    什么是 jQuery xff1f jQuery是一个JavaScript函数库 jQuery是一个轻量级的 34 写的少 xff0c 做的多 34 的JavaScript库 jQuery库包含以下功能 xff1a HTML 元素选取HTML
  • jQuery里面的选择器

    jQuery里面的选择器 jQuery里面的选择器多种多样 xff0c 它支持css1 css3的选择器 xff0c 老版本的jQuery还支持Xpath的选择器 xff0c 在原来的CSS选择器上面又扩展了一些新的选择器 jQuery支持
  • jQuery事件

    什么是事件 xff1f 页面对不同访问者的响应叫做事件 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法 jQuery 是为事件处理特别设计的 实例 xff1a 在元素上移动鼠标 选取单选按钮点击元素 在事件中经常使用术语 34
  • JavaScript 存储对象 sessionStorage (会话存储) 和 localStorage(本地存储)

    JavaScript 存储对象 Web 存储 API 提供了 sessionStorage xff08 会话存储 xff09 和 localStorage xff08 本地存储 xff09 两个存储对象来对网页的数据进行添加 删除 修改 查
  • 配色网站

    01渐变色 https www grabient com ref 61 producthunt 02 New Flat UI Color Picker 网站地址 xff1a http www flatuicolorpicker com Ne
  • AJAX 语法

    AJAX 创建 XMLHttpRequest 对象 XMLHttpRequest 用于在后台与服务器交换数据 这意味着可以在不重新加载整个网页的情况下 xff0c 对网页的某部分进行更新 创建 XMLHttpRequest 对象 所有现代浏
  • mtk平台dmesg配置

    mtk平台dmesg log buffer设置 CONFIG LOG BUF SHIFT
  • onreadystatechange 事件

    onreadystatechange 事件 当请求被发送到服务器时 xff0c 我们需要执行一些基于响应的任务 每当 readyState 改变时 xff0c 就会触发 onreadystatechange 事件 readyState 属性
  • 微信小程序开发

    官方文档 https developers weixin qq com miniprogram dev 微信小程序基础 一 安装微信开发者工具 安装地址 https developers weixin qq com miniprogram