小程序学习

  首先,小程序是基于微信的,它的开发框架使用的是MINA。小程序框架提供了自己的视图层描述语言WXML和WXSS,以及JavaScript,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据和逻辑。

小程序文件结构与传统web对比

  传统web 微信小程序
结构 HTML WXML
样式 CSS WXSS
逻辑 JavaScript JavaScript
配置 JSON

即传统web是三层结构,而微信小程序是四层结构,多了一层配置.json

目录结构

pages --------------------页面文件夹

  index----------------首页

    index.js-----------------首页的逻辑文件

    index.json-------------首页的配置文件

    index.wxml---------------首页的结构文件

    index.wxss----------------首页的样式文件

  logs------------------日志

utils------------------------帮助文档,可以删除

  util.js

app.js----------------------小程序的入口文件(全局文件)

app.json---------------------全局配置文件

app.wxss--------------------全局样式文件

project.config.json------------------项目的配置文件,即右侧设置代码化

sitemap.json-----------------------用来配置小程序及其页面是否允许被微信索引,相当于SEO,只在发布时使用

 

使用app.json来进行全局配置:

pages:页面路径列表。可以在这里添加页面文件;哪个文件在最前面,就默认显示哪个

windows:全局窗口的默认表现

  常用:navigationBarBackgroundColor

    navigationBarTextStyle

    navigationBarTitleText

 

页面:

1.数据绑定:在js中写data,在wxml中调用;data的类型可以是字符串、数字、布尔值和对象

  wxml中使用{{}}调用

  注意:当布尔值充当属性时,一定不要在引号和大括号之间出现空格,否则会导致判断失效。

  可以在花括号内写运算表达式:

    {{1+1}}为2;{{‘1’+‘1’}}为11

    可以写三元表达式:如{{10%2==0?'偶数':'奇数'}}

  循环:wx:for="{{数组或对象}}"  wx:for-item="循环项的名称"  wx:for-index="循环项的索引"

    wx:key="唯一的值" 用来提高列表渲染的性能

      注意,有两种写法:1.wx:key绑定一个普通的字符串的时候,这个字符串名称一定是循环数组或对象的唯一属性

                2.wx:key="*this" 表示你的数组为一个普通的数组,*this表示循环项,如数组[1,2,3,4,5]

    当嵌套循环的时候,要注意wx:for-item="循环项的名称"  wx:for-index="循环项的索引"绑定的名称不要重名

    默认情况下,不写wx:for-item="循环项的名称"  wx:for-index="循环项的索引",小程序也会把循环项的名称和循环项的索引设为item和index,因此只有一层循环的话,wx:for-item="循环项的名称"  wx:for-index="循环项的索引"可以省略

    循环对象时,最好改成wx:for-item="value"  wx:for-index="key",读代码的时候会清楚一些

 

  条件渲染:

    wx:if

      wx:elif

      wx:else

    hidden属性

    哪个场景下使用:当标签频繁切换显示的时候优先使用hidden,因为hidden是通过添加样式的方式来切换显示,即display:none.这样就意味着hidden属性不能和display属性一起使用;当标签不频繁的切换显示的时候优先使用wx:if,因为wx:if是直接把标签从页面结构中移除掉,性能损耗较大。

 

事件绑定

  绑定事件,如input标签关键字为bindinput=”函数"

  获取绑定事件的值:通过事件源对象来获取,如上面函数(e)中的e,具体需要获取的值可以打印出来看

            然后赋值,不能使用vue中的this.num=e.detail.value或者this.data.num=e.detail.value,而要使用this.setData({

  num: e.detail.value

  })

  常用事件:

    点击事件:bindtap

    注意,在小程序中是无法直接在函数上传参的,要通过自定义属性的方式来传参,如

      <button bindtap="handletap" data-operation="{{1}}">+<button>

      然后从事件源e中获取该自定义属性,再在函数中操作该参数

 

 

轮播图组件 swiper

  其中只可放置swiper-item组件,否则会导致未定义的行为

  常用属性:indicator-dots   是否显示面板指示点

      autoplay   是否自动切换

      circular   是否采用衔接滑动

 全局变量globalData(Vuex)

  只能在app.js中定义,正常定义,即

//app.js
App({
    globalData: {
        name: '张三',
        age: 18
    }
})
// globalData中的数据可以作为共享数据在全局使用
              // 在app.js中使用:this.globalData.name = '李四'
              // 在其他页面读取以及修改globalData。不论是读取还是修改,首先需要在应用的页面js文件中,引用app()实例,即const app = getApp()
              // 获取globalData:app.globalData.name
              // 在其他页面设置或修改globalData:getApp().globalData.favorite = "集邮";

 

posted @ 2020-05-11 19:45  ajjoker  阅读(223)  评论(0)    收藏  举报