微信开发者小程序基础

定义

        微信里面的app,2016年推出的,

        竞品:支付宝小程序,钉钉,美团,头条,抖音qq小程序

优点

  • 在微信自由分享
  • 不用下载app
  • 能快速的开发,使用微信的api接口

开发者

  • 内存,源码,图片,存储,接口与数据都有限制

网址

新建项目

界面介绍

项目组成

 app.json

pages注册页面window窗口信息

新建页面

  • 在pages文件夹右键建立新的文件夹
  • 在文件中右键新建页面
  • 哪个page在最上面,默认显示哪页
  • json要求严格语法,不能有多余的注释和逗号

注意设置(勾选不校验合法域名)

页面组件pages/home

home.wxml 模板文件home.js 业务逻辑
home.wxss 样式home.json 页面配置

标签

输入框:input

按钮:button

  • 按钮的样式类型:type
    • 警告:warm
    • 白色(默认):default
    • 主要绿:primary
  • 按钮是否镂空,背景透明(默认是false):plain="{{true}}"
  • 是否警用:disabled     (类型:boolean   默认值:false)
  • 按钮大小:size
    • 默认大小:default
    • 小尺寸:mini

图片:image

  • 图片资源地址:src
  • 缩放模式:mode

文本:text

  • 中文字符空格一半大小:ensp
  • 中文字符空格大小:emsp
  • 根据字体设置的空格大小:nbsp

逻辑分区:view

富文本:rich-text

  • 富文本内容:nodes

小程序的模板语法(约等于vue的模板语法)

  • 文本渲染

    • 普通:{{msg}}
    • 富文本:<rich-text nodes="{{富文本内容}}"></rich-text>
    • 可以执行简单的js表达式
      • {{2+3}}简单的运算
      • {{msg.length}}文字的长度
  • 条件渲染

    • wx:if="{{条件}}"wx:elif="{{多重条件}}"
      其它条件:wx:else{{条件?真表达式:假表达式}}

       条件渲染:

      多重条件渲染 :

  • 列表渲染(循环)

    •  循环遍历:字符串、数组、数字
    • <view wx:for="{{列表}}" wx:key="index">{{index}} --{{item}}</view>
      • wx:for="{{list}}"

        当前被遍历的元素:{{item}}
        wx:key="index"当前被遍历元素的下标{{index}}

     遍历九九乘法表

    <scroll-view scroll-x="true">
    <view wx:for="{{10}}" wx:for-item="i" class="wrap">
    <view class="row">
      <text wx:for="{{10}}" wx:for-item="j" wx:if="{{j>0&&j<=i}}" wx:key="j">
      {{j+"x"+i+"="+i*j}}
      </text>
    </view>
    </view>
    </scroll-view>

  • 自定义列表渲染
    • 定义item与index的名称,wx:for-item="自定义项"     wx:for-index="自定义下标"
    • <view wx:for="{{list}}"
      wx:for-index="myindex"
      wx:for-item="myitem">{{myindex+1}}-{{myitem}}</view>
  • 导入(不常用)
    • import
      • 只能导入template内容
      • template/utils.wxml
        • <template name="userCart">
            用户名:{{name}}
          </temlate>
      • home.wxml
        • <import src="/template/utils.wxml">
          <tempate is="userCart" data="{{...u1}}">

    • include
      • 只能导入非template内容
      • template/foot.wxml
        • <view>{{内容}}</view>
      • home.wxml
        • <include src="/template/foot.wxml">

内置组件

view组件是块组件text 组件是行内组件
button组件是按钮input组件是表单

wxss样式

  • 默认单位是rpx
  • 750rpx 等于一个屏幕的宽
  • 375就是50%的宽

事件

bindInput 表单输入时bindcomfirm 表单输入确认(回车)
bindtap 点击时候bindchange发生变化

事件响应:<view bindtap="say"></view>

事件的传参

  • 1、<button data-msg="被传递的参数" bindtap="tapHd">
    • 获取事件的参数  e.target.dataset.msg
  • 2、<button bindtap="say" data-str="被传递的参数"></button>
  • say(e){let str = e.target.dataset.str || '你好啊' wx.showToast({title:str})}

表单的绑定

<input value="{{s1}}" bindinput="inputHd">
inputHd(e){
   this.setData({s1:e.detail.value})
}

 表单的值获取:e.detail.value

表单的双向绑定

//xxx.wxml文件
<view class="title" >表单双向绑定</view>
<input type="text" placeholder="请输入内容" model:value="{{msg}}" bindinput="inputHd"/>
<view>{{msg}}</view>


//xxx.js文件
  inputHd(e){
    var val= e.detail.value;
  },

内置的api

  • 显示提示:wx.showToast(title,icon)
  • 本地存储:wx.setStorageSync(key,value)
  • 本地取:wx.getStorageSync(key)
  • 网络请求:wx.request ({url,method,success,fail})

生命周期

  • onLoad 页面加载完毕
  • onPullDownRefresh 下拉刷新
  • onReachBottom 触底更新

页面配置

"enablePullDownRefresh": true,  允许下拉刷新
"backgroundTextStyle": "dark",  背景文字颜色
"backgroundColor":"#f70", 背景颜色
"usingComponents": {} 组件

wxs语法

  • <wxs module="fn" src="xxx.wxs">module.exports={filter:function(){}}</wxs>
  • {{fn.filter(list,true)}}

小程序的限制

  • 源文件大小
    • 每个包不能超过2M
    • 总共不能超过16-20M
  • 页面缓存堆栈5层
  • 底部栏
    • 最少2个最多5个
    • 底部栏图片31k
  • 本地存储
    • 1次1M 最多100M
  • setData
    • 不能超过1M
  • 功能和微信一致(右上角胶囊按钮,下拉刷新)

小程序的页面的跳转

  • 组件跳转<navigator>
    • url 跳转的地址
    • open-type 打开类型
      • navigate 普通跳转navigateBack 返回
        redirect 重定向switchTab 跳转底部栏
        reLaunch 重启

  • api跳转
    • wx.navigateTo  跳转wx.switchTab  切换底部栏
      wx.redirect 重定向wx.reLaunch 重启

页面栈

  •   通过 open-type = "navigate" 页面会缓存起来  最多缓存5层  
  • A页面->redirect B页面
    A页面是不会被缓存    
  • E 页面  "navigateBack" 到 D页面   (页面的缓存移除一次)
  • 总结:
    • navigate会增加一层缓存页面
      redirect 会替换一层缓存页面
      navigateBack 会移除一层缓存页面

页面传参

  • 小程序页面传参主要通过 查询传参
  • 传:url=“xxxx/xxx?name=mumu&age=18”
  • 接收:onLoad options参数接收
    • options.name
      options.age

全局数据

  • app.js的globalData
    • 定义:app.js的globalData
    • 页面使用
      • var app  = getApp();
      • app.globalData.num

封装request

  1. 定义baseURL
  2. 添加请求头
  3. 添加加载提示
  4. 同一错误处理

npm安装包

  • 初始化项目步骤

就会直接进入到这个页面      如下图 

开始初始化项目 

安装插件

app.json删除v2

修改project.config.js

工具,构建npm

导入组件

使用组件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值