mpvue开发小程序

前两天出去面试一把,感觉有点坑,问我一堆前端的问题,结果说招后端,具体哪个公司就不给大家说了,总结就是:“面试的时候一定问清楚HR招聘的要求”。

小程序第一个问题:获取用户位置信息

获取用户位置信息,貌似18年开发小程序的时候还没有提示这种情况,直接调用wx.getLocation(),但是时隔两个月之后,哎!只能说互联网行业更新太快,时刻的学习,

出现这种情况,报错位置基本已经很清楚了(控制台也会有提示),我们去app.json中添加permisssion字段就可以了具体代码如下

"pages": [
    "pages/index/main",
    "pages/logs/main",
    "pages/counter/main"
  ],
  "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序位置接口的效果展示"
    }
  },

填写完毕之后我们就可以获取经纬度信息了

深层次:如果想要根绝经纬度获取城市名称该怎么操作呢?

按照上面的操作我已经取得了用户的经纬度,然后在百度地图中查询具体代码如下

 loadCity(longitude, latitude){
      console.log(longitude)
          var page = this
          wx.request({
            url: 'https://api.map.baidu.com/geocoder/v2/?ak=百度ak&location=' + latitude + ',' + longitude + '&output=json',
            data: {},
            header: {
              'Content-Type': 'application/json'
            },
            success: function (res) {
              console.log(res);
              var city = res.data.result.addressComponent.city;
              // page.setData({ currentCity: city });
            },
            fail: function () {
              // page.setData({ currentCity: "获取定位失败" });
            },
            
          })
        }

小提示:1.在使用wx.getLocation()方法时,我们要用箭头函数不然this指向会有问题

2.在同样配置完成之后,还需要一步操作,就是域名的合法性,需要再小程序的后天把百度的域名添加上去,不然会提示不在以下 request 合法域名列表中,请参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html

具体代码如下

 wx.getLocation({
      type: 'wgs84',
      success:res=> {
        var longitude = res.longitude
        var latitude = res.latitude
        this.loadCity(longitude , latitude)
      }
    });

小程序第二个问题:改变顶部title

如果用原生编写小程序大家也许很清楚在什么地方添加顶部的title,但是用mpvue大家也许有些蒙蔽了,具体做法,在我们搭建好项目的时候其实有一个用例,在log这个文件夹下面,所以我们如果想要更改顶部的titile时候需要再当前的文件夹下添加一个json文件然后具体代码如下

{
  "navigationBarTitleText": "快起步首页"
}

说白了其实就是少了一个配置文件而已,希望给大家做一个参考

小程序第三个问题:吸顶的做法

所谓吸顶就是上拉固定某一块位置在顶部并且隐藏某一模块,下拉展示某一模块,定位取消。用vue和远程写可能会相对简单点,但是用mpvue,我们的借鉴小程序的scroll-view标签的scroll属性,具体代码如下

 <scroll-view  :style="{'height': '600px'}" :scroll-y="true"  @scroll="scroll" >
      
      <CardHeader></CardHeader>


      <div class="condition" :class="searchBarFixed == true ? 'isFixed' :''">
          <div v-for="(item , index ) in condition" :key="index" :class="[index == checkedNum ? 'checked' :'']" @click="dbChecked(index)">
            <label>{{item.title}}</label>
            <span class="iconfont" v-bind:class="item.class"></span>
          </div>
      </div>

      <Cardsx></Cardsx>
    </scroll-view>


scroll(el){

     if(el.mp.detail.scrollTop>44){  //获取到顶部的距离》大于某一个值
        this.searchBarFixed = true;
     }else{
        this.searchBarFixed = false;
     }
   },

小程序第四个问题:组件的用法

在上面我已经用过了组件,他和vue引用组件的方式大致差不多,唯一不同的就是不知道为啥非得在前面添加一个Card

import Cardsx from '../../components/shuaixuan';
components: {
    Cardsx
  },

5:,mpvue实现小程序的外链跳转,

首选:我们需要再app.json里配置里添加的路径名称

其次:新增点击事件大致内容和一般跳转类似

备注:以下是outline文件的内容

6.铺满屏幕:

单独讲铺满屏幕,主要用到mode='widthFix'

具体加在的程序段是.wxml:

<image src="/images/img21.jpg" class='in-image' mode='widthFix'> </image>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值