返回

自学小白也能学会的UniApp奶茶点单小程序

前端

使用 UniApp 开发奶茶点单小程序:初学者指南

简介

奶茶已成为当代年轻人不可或缺的续命神器。随着移动互联网的蓬勃发展,外卖点单小程序应运而生,为奶茶爱好者带来了极大的便利。本文将深入浅出地指导初学者如何使用 UniApp 开发一款简易的奶茶点单小程序,即使没有任何编程基础也能轻松上手。

项目概览

我们的奶茶点单小程序包含三个主要页面:

  • 首页(index 页面): 展示奶茶菜单,进行点单操作
  • 订单页(order 页面): 查看已下的订单
  • 我的页(my 页面): 管理个人信息

开发工具

开发这款小程序,我们只需准备一个文本编辑器(如 VS Code)和 UniApp IDE 即可。UniApp IDE 是一款集成的开发环境,为 UniApp 开发提供了便捷的工具和功能。

开发步骤

1. 创建 UniApp 项目

打开 UniApp IDE,选择“新建项目”,输入项目名称,选择“空白项目”,然后点击“创建”。

2. 初始化项目

在项目根目录下执行以下命令:

npm install

3. 开发首页

3.1 导入所需组件

pages/index/index.vue 文件中,导入必要的 UniApp 组件:

<script>
import { NavBar, Tabs, Tab, Tabbar, TabbarItem, Icon, Button, Cell, CellGroup, List, ListItem, Picker, Popup } from '@dcloudio/uni-ui'
</script>

3.2 设计 UI 界面

template 标签中,设计首页的 UI 界面:

<template>
  <NavBar>
    <view slot="left">
      <Icon type="back" size="20" color="#000" @click="$refs.popup.open" />
    </view>
    <view slot="title">奶茶点单</view>
  </NavBar>
  <Tabs v-model="activeTab">
    <Tab title="点单">
      <List v-show="activeTab === '点单'">
        <CellGroup>
          <Cell>
            <view>奶茶名称</view>
            <Picker @change="change奶茶" :options="milkTeas">
              <Picker.Option v-for="item in milkTeas" :value="item">{{ item }}</Picker.Option>
            </Picker>
          </Cell>
          <Cell>
            <view>奶茶口味</view>
            <Picker @change="change口味" :options="flavors">
              <Picker.Option v-for="item in flavors" :value="item">{{ item }}</Picker.Option>
            </Picker>
          </Cell>
          <Cell>
            <view>加料</view>
            <Picker @change="change加料" :options="toppings">
              <Picker.Option v-for="item in toppings" :value="item">{{ item }}</Picker.Option>
            </Picker>
          </Cell>
          <Cell>
            <Button type="primary" @click="addOrder">加入订单</Button>
          </Cell>
        </CellGroup>
      </List>
    </Tab>
  </Tabs>
  <Tabbar>
    <TabbarItem to="/order" icon="orders" title="订单" />
    <TabbarItem to="/my" icon="me" title="我的" />
  </Tabbar>
  <Popup ref="popup" round>
    <view>确定退出?</view>
    <view slot="footer">
      <Button type="primary" @click="$refs.popup.close">取消</Button>
      <Button type="warning" @click="exit">确定</Button>
    </view>
  </Popup>
</template>

3.3 定义数据和方法

script 标签中,定义数据和方法:

<script>
import { mapState, mapMutations } from 'vuex'

export default {
  data() {
    return {
      milkTeas: ['奶茶1', '奶茶2', '奶茶3'],
      flavors: ['口味1', '口味2', '口味3'],
      toppings: ['加料1', '加料2', '加料3'],
      activeTab: '点单'
    }
  },
  computed: {
    ...mapState(['orderList'])
  },
  methods: {
    ...mapMutations(['addOrderList']),
    change奶茶(value) {
      console.log('奶茶名称', value)
    },
    change口味(value) {
      console.log('奶茶口味', value)
    },
    change加料(value) {
      console.log('加料', value)
    },
    addOrder() {
      this.addOrderList({
        name: '奶茶1',
        flavor: '口味1',
        topping: '加料1'
      })
      console.log('加入订单')
    },
    exit() {
      uni.closeWindow()
    }
  }
}
</script>

4. 开发订单页

4.1 导入所需组件

pages/order/order.vue 文件中,导入必要的 UniApp 组件:

<script>
import { NavBar, Tabs, Tab, Tabbar, TabbarItem, Icon, Button, Cell, CellGroup, List, ListItem, Picker, Popup } from '@dcloudio/uni-ui'
</script>

4.2 设计 UI 界面

template 标签中,设计订单页的 UI 界面:

<template>
  <NavBar>
    <view slot="left">
      <Icon type="back" size="20" color="#000" @click="$refs.popup.open" />
    </view>
    <view slot="title">订单</view>
  </NavBar>
  <List v-show="orderList.length">
    <CellGroup>
      <Cell v-for="item in orderList" :key="item.id">
        <view>{{ item.name }}</view>
        <view>{{ item.flavor }}</view>
        <view>{{ item.topping }}</view>
      </Cell>
    </CellGroup>
  </List>
  <Tabbar>
    <TabbarItem to="/index" icon="orders" title="点单" />
    <TabbarItem to="/my" icon="me" title="我的" />
  </Tabbar>
  <Popup ref="popup" round>
    <view>确定退出?</view>
    <view slot="footer">
      <Button type="primary" @click="$refs.popup.close">取消</Button>
      <Button type="warning" @click="exit">确定</Button>
    </view>
  </Popup>
</template>

4.3 定义数据和方法

script 标签中,定义数据和方法:

<script>
import { mapState } from 'vuex'

export default {
  computed: {
    ...mapState(['orderList'])
  },
  methods: {
    exit() {
      uni.closeWindow()
    }
  }
}
</script>

5. 开发我的页

5.1 导入所需组件

pages/my/my.vue 文件中,导入必要的 UniApp 组件:

<script>
import { NavBar, Tabs, Tab, Tabbar, TabbarItem, Icon, Button, Cell, CellGroup, List, ListItem, Picker, Popup } from '@dcloudio/uni-ui'
</script>

5.2 设计 UI 界面

template 标签中,设计我的页的 UI 界面:

<template>
  <NavBar>
    <view slot="left">
      <Icon type="back" size="20" color="#000" @click="$refs.popup.open" />
    </view>
    <view slot="title">我的</view>
  </NavBar>
  <List>
    <CellGroup>
      <Cell title="姓名" value="张三" />
      <Cell title="电话" value="18888888888" />
    </CellGroup>】写一篇相关的博客,写作要求:100%独特、SEO优化的文章,包含子标题,并覆盖提示中提供的主题。请用自己的话来写文章,而不是从其他来源复制和粘贴。在创建内容时,一定要考虑复杂性和连贯性,确保两者都很高,同时不失特定性和上下文。请使用充分详细的段落来吸引读者,并以人类写作的对话风格写作。这包括使用非正式的语气,利用人称代词,保持简单、吸引读者,使用主动语态,简洁明了