美文网首页前端Vue专辑
mpvue微信小程序-仿网易云音乐

mpvue微信小程序-仿网易云音乐

作者: 往复随安_ | 来源:发表于2019-01-29 15:30 被阅读7次

前言

在尝试开发了一个微信小程序之,后发现有mpvue这么个东西可以来开发小程序以后就忍不住了,所以把小程序和我用vue开发过的版本结合修改以后,再尝试用mpvue+iview-weapp开发一个版本。 

后台接口用的是[NeteaseCloudMusicApi](https://binaryify.github.io/NeteaseCloudMusicApi/#/),感谢大佬的分享 

[git地址](https://github.com/Izayawww/my-project),demo项目代码质量不是很好,哈哈哈哈多多见谅😁

预览

![](https://user-gold-cdn.xitu.io/2018/8/31/1658e1511bcb13fe?w=250&h=450&f=gif&s=4675839)

项目搭建

* 最开始还是要把[微信小程序开发工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)下载一下

* mpvue项目建立,跟着官网走一遍是最快的 [快速上手](http://mpvue.com/mpvue/quickstart/)

* 支持iview-weapp,还是跟着官网[快速上手](https://weapp.iviewui.com/docs/guide/start),这里就一个地方要注意,把下载下来的**iview-weapp项目的dist文件夹**(可以改名字)是放到**你项目编译后的**dist目录下,iview-weapp官网没有效果的展示,所以建议扫它上面的二维码查看效果以后对照它的代码进行开发

* 最后就是用微信小程序开发工具打开项目(不是dist目录),用你常用的编译器编写代码(src目录下)

请求方面

微信小程序有自带的wx.request()可以使用,还可以用[Flyio](https://wendux.github.io/dist/#/doc/flyio/readme),我是用的Flyio 

具体使用的话可以再每个模块中 

```

var Fly=require("flyio/dist/npm/wx")

var fly=new Fly

fly.get(url).then(res=>{})

```

还有就是在main.js中

```

const Fly = require('flyio/dist/npm/wx');

let fly = new Fly();

Vue.prototype.$fly = fly;

//模块中使用

this.$fiy.get(url).then(res=>{})

```

### 路由跳转传参

wx.navigateTo({url:'../test/main?id='+id}) 

第一种:

```

onShow (options) {

let id = options.id

}

```

第二种:在所有页面组件内可以通过 this.$root.$mp.query 获取,要注意就是:写在mounted函数里,写到created报错。

第三种:在所有的组件内可以通过 this.$root.$mp.appOptions获取。 

正常情况下三种应该都是可以的,某一种没用的时候就尝试另外两种

### vuex方面

还是和vue里面的使用一样,简单的 

/src/store/store.js

```

import Vue from 'vue'

import Vuex from 'vuex';

Vue.use(Vuex);

export default new Vuex.Store({

  state: {

  oneState:'one'

    }

  },

  mutations: {

    setItem: (state,data) => {

      state.oneState = data

    },

  },

  getters : {

    getItem (state) {

        return state.oneState

    },

});

```

/src/main.js

```

import store from './store/store'

Vue.prototype.$store = store;

```

/src/page/text.vue

```

import {mapGetters} from 'vuex'

  export default {

    computed:{

      ...mapGetters([

        'oneState'

        ])

    },

    },

    methods:{

        test(){

            this.$store.commit('setItem', 'two')

        }

    }

```

总结

好了,基本的开发流程就是这样,具体的开发大部分还是像vue开发那样,自己在开发的时候,遇到的坑还是有的,但网上基本都能找到解决方案,具体遇到的时候就查一查都能查到,收获很多,需要改进、优化、学习的也很多。

最后这里还有一个用vue开发的版本可[在线预览](http://lucaswww.coding.me/my-music/dist/#/index/Music),建议用chrome的手机模式预览

相关文章

网友评论

    本文标题:mpvue微信小程序-仿网易云音乐

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