微信小程序


注册

  • 由于发文限制,请自行到微信公众平台注册

项目结构

  • project.config.json 配置文件(不需要动)
  • app.json(用户配置)
    • 路由pages
    • window 整个程序样式
    • tabar底部设置
    • .....
  • app.js 入口程序

xxx.js

  • app.js是入口程序,代表应用要做的事
  • 通过路由切换到了index.js中
  • Page(options)
    • data 属于页面的数据

      • this.data.xxx
    • onLoad: 获取路由参数 , onLoad(options.xxx)
    • onReady: 更改页面数据,比如改title
    • onShow: 多次触发,切换页面的时候
    • onHide: 多次触发
  • data初始化数据
  • onReady 修改数据
    • this.setData({ msg:'xxx'})
    • 修改并更新视图

常用组件

  • view视图

  • text文本框

  • picker 选择列表

  • input组件(无法使用font-family)

    • 通过bind事件(全小写),来绑定对应js中声明的函数,赋值赋函数引用
    • input bindblur="函数名"
    • 在函数内部,接受e这个对象
      • e.detail.value 获取value值
      • e.target.id 元素id
      • e.target.dataset 获取元素上的属性 data-xxx

wx指令

  • 在页面中 wx-xxx
  • wx:if="" 是否显示
  • wx:for=""
  • wx:for="{{数组}}"
    • 元素:{{item}} 索引 {{index}}
  • 条件 wx:if="{{布尔值}}" 相邻 wx:elif="{{布尔值}}" 相邻 wx:else

事件

  • change 改变事件
  • tap 点击事件
  • bindblur 离焦
  • bindconfirm 回车
  • bindinput 键入
  • checkbox-group 包裹checkbox 获取的detail.value是一个数组
  • 表单
    • button的formType

      • submit
      • reset

发请求

  • wx.request( options)

    • url
    • success
    • fail
    • complete

引入资源

html导入

<include src=""/>

js导入

<wxs src="./../test/test.wxs" module="test"/> 相对路径

<view>

  {{test.name}}

</view>

css导入 @import "common.wxss";

路由参数 :

onLoad: function(option){
console.log(option.query)
}
  • 图片预览wx.preview
  • 本地存储 wx.setStorageSync

上拉下拉

  • 上拉和下拉的操作需要触发,必须js文件中,声明其对应的回调函数

    • 下拉函数 onPullDownRefresh -> 需要配置xxx.json

      • enablePullDownRefresh:true
    • 上拉触底 onReachBottom
    • 停止下拉的函数 wx.stopPullDownRefresh()
  • 以上函数可以通过Page构造编辑器自动输出,单页面属性参考配置window

导航

  • url=page
  • open-type:
    • 默认: navigateTo :非tabBar页面。
    • switchTab tabBar 页面。
    • navigateBack 返回
    • reLaunch 再运行
  • 编程导航: wx这个全局对象提供了一套 open-type对应值的api
    • wx.switchTab||navigateTo 注意区分非tabbar

tabbar

  • color selectedColor 对于整个tabbar的设置

  • iconPath selectedIconPath 每个不同的单独设置

  • 有趣的功能

    • 播放下载音乐

      • const innerAudioContext = wx.createInnerAudioContext()
        innerAudioContext.autoplay = true
        innerAudioContext.src = res.tempFilePath
        innerAudioContext.onPlay(() => {
        console.log('开始播放')
        })
        innerAudioContext.onError((res) => {
        console.log(res.errMsg)
        console.log(res.errCode)
        })
    • 弹幕

      • <view class="section tc">
        <video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400" enable-danmu danmu-btn controls></video>
        <view class="btn-area">
        <button bindtap="bindSendDanmu">发送弹幕</button>
        </view>
        </view>
      • bindSendDanmu() {
        this.data.videoContext.sendDanmu({
        text: '6666',
        color:'#00b26a'
        })
        },
        onReady: function () {
        this.data.videoContext = wx.createVideoContext('myVideo')
        },
    • 查找元素

      • const query = wx.createSelectorQuery();
        // 定义选择器,查找元素位置
        query.select('#bottom').boundingClientRect()
        query.exec(ele=>ele);

    引入资源

    html导入

    <include src=""/>

    js导入

    <wxs src="./../test/test.wxs" module="test"/> 相对路径
    
    <view>
    
      {{test.name}}
    
    </view>
    
    

    css导入 @import "common.wxss";

    路由参数 :

    onLoad: function(option){
    console.log(option.query)
    }
    • 图片预览wx.preview
    • 本地存储 wx.setStorageSync

    上拉下拉

    • 上拉和下拉的操作需要触发,必须js文件中,声明其对应的回调函数

      • 下拉函数 onPullDownRefresh -> 需要配置xxx.json

        • enablePullDownRefresh:true
      • 上拉触底 onReachBottom
      • 停止下拉的函数 wx.stopPullDownRefresh()
    • __以上函数可以通过Page构造编辑器自动输出,单页面属性参考配置window

组件

  • 创建一个compoment
  • 配置其.json文件 component:true
  • 在使用组件的.json文件中定义
    • usingComponents:{ 名:路径}
  • 在使用组件的页面使用

接收数据

  • properties: {
    text:{
    type:Number,
    value:888
    }
    }

组件wxml的slot

在组件的wxml中可以包含 slot 节点,用于承载组件使用者提供的wxml结构。

默认情况下,一个组件的wxml中只能有一个slot。需要使用多slot时,可以在组件js中声明启用。

Component({
options: {
multipleSlots: true // 在组件定义时的选项中启用多slot支持
},
properties: { /* ... */ },
methods: { /* ... */ }
})

此时,可以在这个组件的wxml中使用多个slot,以不同的 name 来区分。

<!-- 组件模板 -->
<view class="wrapper">
<slot name="before"></slot>
<view>这里是组件的内部细节</view>
<slot name="after"></slot>
</view>

使用时,用 slot 属性来将节点插入到不同的slot上。

<!-- 引用组件的页面模板 -->
<view>
<component-tag-name>
<!-- 这部分内容将被放置在组件 <slot name="before"> 的位置上 -->
<view slot="before">这里是插入到组件slot name="before"中的内容</view>
<!-- 这部分内容将被放置在组件 <slot name="after"> 的位置上 -->
<view slot="after">这里是插入到组件slot name="after"中的内容</view>
</component-tag-name>
</view>

样式

  • 尽可能使用class,组件可以指定它所在节点的默认样式,使用 :host 选择器

使用插件

  • 进入官方后台添加插件,获取appid等信息
  • 进入app.json文件中配置plugins:{ "名":{ 相关信息 } }
  • 根据插件文档使用插件(有可能是组件) 需配置usingComponent

登录

微信小程序入门讲解的更多相关文章

  1. 微信小程序入门与实战 从0到1进行细致讲解 涵盖小程序开发核心技能下载

    第1章 什么是微信小程序? 第2章 小程序环境搭建与开发工具介绍 第3章 从一个简单的“欢迎“页面开始小程序之旅 第4章 第二个页面:新闻阅读列表 第5章 小程序的模板化与模块化 第6章 构建新闻详情 ...

  2. 微信小程序入门与实战 常用组件API开发技巧项目实战*全

    第1章 什么是微信小程序? 第2章 小程序环境搭建与开发工具介绍 第3章 从一个简单的“欢迎“页面开始小程序之旅 第4章 第二个页面:新闻阅读列表 第5章 小程序的模板化与模块化 第6章 构建新闻详情 ...

  3. 微信小程序入门与实战(最新完整版)教程

    微信小程序入门与实战(最新完整版) 如图地址:下载地址在底部 |- 第1章 什么是微信小程序? - 0 B |- 第2章 小程序环境搭建与开发工具介绍 - 0 B |- 第3章 从一个简单的“欢迎“页 ...

  4. 天河微信小程序入门《四》:融会贯通,form表单提交数据库

    天河在阔别了十几天之后终于又回来了.其实这篇文章里的demo是接着(天河微信小程序入门<三>)后面就做了的,但是因为最近在做别的项目,所以就偷懒没有发出来.放到今天来看,从前台提交数据到数 ...

  5. 天河微信小程序入门《三》:打通任督二脉,前后台互通

    原文链接:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=505&extra=page%3D1 天河君在申请到https ...

  6. 天河微信小程序入门:阿里云tomcat免费配置https

    天河君在第一时间通过了微信小程序验证,开启了我的微信小程序之旅.因为天河君之前是一名后端狗,对前端不是很了解,所以几乎可以认为是从零开始学做微信小程序.也希望有志在微信小程序方向做点事情的朋友能够和我 ...

  7. 我的微信小程序入门踩坑之旅

    前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...

  8. 微信小程序入门正确姿势(一)

    [未经作者本人同意,请勿以任何形式转载] >>>前言 这是 [认真学编程] 系列的 第4篇 文章(微信小程序入门系列),欢迎点赞分享.写留言,这些都是对我最好的支持. 本系列适合有一 ...

  9. 微信小程序入门篇

    微信小程序入门篇: 准备工作 IDE搭建 就不多说了,没有内测码去下载个破解版吧,我用了一下,学习完全够了!IDE破解版+安装教程 图片发自简书App 知识准备 JavaScrip还是要看看的,推荐教 ...

随机推荐

  1. Debian8.8为普通用户添加sudo权限

    1.进入root用户,su root 输入密码,我们首先修改 /etc/sudoers 文件的属性为可写权限# chmod +w /etc/sudoers2.编辑 vim /etc/sudoers,添 ...

  2. Regex of Perl: ?= 指的是如果后面匹配到,则后面的内容不做替换,保留。 ab, s/a?=b/x/,变为xb,即后面匹配到b,b保留不做替换

    Regex of Perl: ?= 指的是如果后面匹配到,则后面的内容不做替换,保留.  ab, s/a?=b/x/,变为xb,即后面匹配到b,b保留不做替换

  3. No module named 'dateutil'

    pip3 install python-dateutil

  4. [LC] 299. Bulls and Cows

    Example 1: Input: secret = "1807", guess = "7810" Output: "1A3B" Expla ...

  5. day16-封装(私有静态属性、私有属性、私有方法、类方法、静态方法)

    # 一: class P: __age = 30 #私有静态属性 def __init__(self,name): self.__name = name #私有属性:属性名前面加上双下划线是私有属性. ...

  6. linux安装源码包报错

    报错代码1如下: [root@xiaoming nginx-]# ./configure --prefix=/soft/nginx- checking for OS + Linux -.el7.x86 ...

  7. linux上安装 mysql

    一.linux 上安装 mysql 1.查看mysql是否安装 rpm -qa|grep mysql 2.卸载 mysql yum remove mysql mysql-server mysql-li ...

  8. Zblog主题模板自适应手机响应式ZblogPHP简洁博客主题

    Z-blog PHP版本简洁主题模板 特点简洁舒适 手机移动端自适应,完美有利于优化 代码结构利于编辑 对于不懂代码的,也非常适合简答后台简答 PC端侧边栏下拉跟随,无论下面有多长,导航侧边栏都只在左 ...

  9. nmon监控指标

    一.NMON中的各项参数指标: SYS_SUMM:显示当前服务器的总体性能情况 Total System I/OStatistics: Avg tps during an interval:显示采集间 ...

  10. Java中Date类型详解

    一.Date类型的初始化 1. Date(int year, int month, int date); 直接写入年份是得不到正确的结果的. 因为java中Date是从1900年开始算的,所以前面的第 ...