您的位置:

uniapp运行详解

一、项目创建

uniapp是基于vue.js的跨端开发框架,可以让我们在一个项目中同时开发出H5、小程序、APP等不同平台的应用。其最大的优势是开发效率高,一次开发可同步生成多平台应用。那么如何创建一个uniapp项目呢?

1、首先我们需要在电脑上安装HBuilderX这个软件,它提供了uni-app插件,集成了uni-app开发所需要的众多功能和资源。

2、在HBuilderX中选择“新建项目”,在弹出的对话框中选择uni-app->uni-app项目。

3、填写应用名称、应用ID(唯一标识)、创建目录、选择调试模式和启用自定义主题等相关信息,即可完成项目的创建。

// uni-app项目创建示例代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>uni-app demo</title>
  </head>
  <body>
  </body>
</html>

二、代码结构

uniapp的代码结构与vue.js基本相同,它们都采用组件化的思想。uniapp项目的代码结构如下:

  • common - 存储公共的js/css/image等静态资源
  • components - 存储可复用的组件,如头部导航栏、底部栏等
  • pages - 存储应用的具体页面,每个页面是一个.vue文件,包含模板、样式和逻辑
  • static - 存储静态资源,如图片、样式文件等
  • App.vue - 应用的根组件
  • main.js - 应用的入口文件
  • manifest.json - 应用的配置文件
  • pages.json - 应用的页面配置文件

其中,App.vue是应用的根组件,每个页面也是一个.vue文件,样式、逻辑和模板都在同一个文件中实现,有利于提高代码可读性和维护性。

// 页面组件示例代码
<template>
  <view class="container">
    <view class="title">{{title}}</view>
    <button class="btn" @click="onClick">点击我</button>
  </view>
</template>
<script>
  export default {
    data() {
      return {
        title: '我是页面标题'
      }
    },
    methods: {
      onClick() {
        console.log('点击了按钮');
      }
    }
  }
</script>
<style>
  .container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .title {
    font-size: 24px;
    margin-bottom: 30px;
  }
  .btn {
    padding: 10px 20px;
    background-color: #409EFF;
    color: #fff;
    border: none;
    border-radius: 5px;
  }
</style>

三、跨端开发

uniapp可以同时打包生成H5、小程序、APP等不同平台的应用,这是基于uniapp框架优秀的跨平台性能所实现的。同时,uniapp还提供了相关的API来实现平台之间的差异性处理。

1、H5平台:

H5平台是uniapp最基本的开发平台,它的组件和vue.js基本相同,但要注意样式和布局方面的差异。同时,在uniapp的页面中使用了一些特有的标签和属性,如<unicenter>、<unilist>等。

2、小程序平台:

uniapp能够生成微信、百度、支付宝等多个小程序平台的应用。在开发小程序时,需要注意使用小程序特有的组件和API。如微信小程序的<swiper>组件,在uniapp中是需要特殊处理的。

3、APP平台:

除了H5和小程序,uniapp还可以打包成APP平台的应用。这需要使用到相关的打包工具,如HBuilderX。在APP平台开发时需要注意的是,uniapp对于一些原生特性的支持不如Flutter、React Native等框架,需要额外编写原生代码实现一些特殊的功能。

四、生命周期

uniapp的生命周期与vue.js相同,它包括了应用的创建、渲染和销毁等不同阶段,可以在不同阶段进行相应的操作。

其中常用的生命周期函数有:

1、onLoad - 页面载入时触发,只触发一次。

2、onReady - 页面初次渲染完成时触发,只触发一次。

3、onShow - 页面显示时触发,每次打开页面都会触发。

4、onHide - 页面隐藏时触发。

5、onUnload - 页面卸载时触发。

// 生命周期示例代码
<script>
  export default {
    created() {
      console.log('页面创建');
    },
    mounted() {
      console.log('页面渲染完成');
    },
    onShow() {
      console.log('显示页面');
    },
    onHide() {
      console.log('隐藏页面');
    },
    onUnload() {
      console.log('卸载页面');
    }
  }
</script>

五、网络请求

在uniapp中,我们使用uni.request方法进行网络请求,该方法是封装好的uni-app原生请求库。它支持Promise风格的API和async/await等方式。

// 网络请求示例代码
<script>
  export default {
    methods: {
      async fetchData() {
        const res = await uni.request({
          url: 'https://api.example.com/data',
          method: 'GET'
        });
        console.log(res);
      }
    }
  }
</script>

六、小结

本篇文章介绍了uniapp的创建、代码结构、跨端开发、生命周期和网络请求等方面,希望能够帮助大家更好地理解uniapp的使用以及在跨端开发中的应用。