微信小程序基本使用

2018-06-09  本文已影响38人  寻找最亮的光

正在学习微信小程序开发,参考查找的博客资料,官方文档整理一些可能用到的基本知识和要注意的问题,下面都是本人亲自测试可以实现的,如果有什么问题,请指出来或者参考下原文。

一.控件初步使用 参考 控件基本使用

1.按钮与事件点击

a.放置一个按钮,通过bindtap绑定事件btnClick,{{ }}里面的是从js中获取的按钮内容

<button type="primary" bindtap="btnClick"> {{btnText}} </button>

b.在js文件的data中写下面的内容,初始化界面数据

data: {
    btnText:'按钮初始内容', //按钮初始化内容,另外两个其他地方使用
    isTextshow:true,
    news:['aaa','bbb','ccc'],
  },

c.编写按钮点击回调函数,写完后编译运行,在点击按钮时,按钮内容改变

btnClick:function(){
    this.setData({ btnText:'点击后的内容'})
  }
2.列表显示数组内容

a.通过下面的代码,就可以将js文件中写的初始化数据news内容显示出来,news代表数组名字,newsItem代表每个参数的别名

<view wx:for="{{news}}" wx:for-item="newsItem">
{{index}}: {{newsItem}}
</view>
3.页面加入头部和底部 参考 -> 小程序引入公共页面几种情况

(1).普通引入
a.在pages文件夹添加一个template文件夹,新建一个header.wxml文件加入代码

<template name='header'>
  <view>header</view>
</template>

b.在需要引入的文件中添加下面的代码引入,第二行中的header需要和头部文件中的name值一样,记得后面的反斜杠,不然会报错

<import src="/pages/template/header.wxml" />
<template is="header" />

(2).需要给引入的文件传参数的情况
a.下面是需要引入的文件内容

<template name="msgItem">
  <view>
    <text>This is template.wxml文件,我是一个模板</text>
    <view>
      <text> {{index}}: {{msg1}} </text>
      <text> {{msg2}} </text>
    </view>
  </view>
</template>

b.引入文件并传参

<import src ="/pages/template/footer.wxml"/>
<template is="msgItem" data="{{index:1,msg1:'msg1数据',msg2:'msg2数据'}}"/>

(3).列表item模版,根据参数不同调用不同模版(循环引用,并且添加判断条件)
a.首先在js文件中数据源data中加入list数组

data: {
    list:[
      { name: '张三', age: 15 },
      { name: '李四', age: 25 },
      { name: '王五', age: 18 },
      { name: '赵六', age: 19 },
    ]
  }

b.在模版文件中写入下面代码

<template name="msgItem">
  <view class="template_style">
    <text> name: {{name}} </text>
    <text class="template_age_style"> age: {{age}}</text>
  </view>
</template>
<template name="msgItem2">
  <view class="template_style">
    <text> name: {{name}} </text>
    <text class="template_age_style"> age: {{age}}</text>
    <text>我是一个未成年</text>
  </view>
</template>

c.循环引用模版

<import src ="../template/template.wxml"/>
<view wx:for="{{list}}">
    <template is="{{item.age >= 18 ? 'msgItem' : 'msgItem2'}}" data="{{name:item.name,age:item.age}}"/>
</view>
4.为模版引入样式文件

a.在引入模版文件的文件夹中的wxss文件中添加下面代码,为模版引入样式文件

@import "/pages/template/footer.wxss";
二.事件触发
1.点击事件冒泡 参考文章

a.可以通过<view class="view2" bindtap="view1click" id="view2">方式给控件绑定事件
b.使用下面的方式接收触发事件,但是父级通过同样的方式绑定事件时父级事件也会触发
view1click : function(event){
console.log("view1click")
console.log(event)
},
c.防止事件冒泡的方式就是把 bindtap 关键字换成 catchtap
d.在event对象中,包含了传递过来控件的信息,可以根据这些做业务逻辑判断

三.几种传参方式 这里是原文
1.添加点击事件,js用navigateTo跳转传参

a.在js回调函数中使用下面的方式跳转

wx.navigateTo({
            url: '../index/index?id=1&name=aaa',
          })

b.在跳转后的index页面对应的js文件onLoad方法中获取

onLoad: function (options) {
     var id = options.id    //获取值
  },
2.全局变量

a.在app.js全局变量中添加添加要传的参数

globalData:{
      id:null
    } 

b.在点击后的毁掉函数中,跳转前赋值

var app = getApp();
app.globalData.id = 2

c.在跳转后页面的js文件onLoad方法中获取

var app = getApp();
var id = app.globalData.id
3.列表index下标取值

a.wxml页面,如果需要传递多个,可以写多个data-[参数]的方式进行传递

<button bindtap='clickMe' data-id='1'>点击</button>

b.js代码,通过wxml设置data-[参数名]传递参数,[参数名]只能是小写

clickMe:function(e){
  var id = e.currentTarget.dataset.id
  console.log(id);
},
4.form表达传值
上一篇下一篇

猜你喜欢

热点阅读