美文网首页
微信小程序基本使用

微信小程序基本使用

作者: 寻找最亮的光 | 来源:发表于2018-06-09 12:08 被阅读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表达传值

    相关文章

      网友评论

          本文标题:微信小程序基本使用

          本文链接:https://www.haomeiwen.com/subject/hzcteftx.html