1 回复
在uni-app中,你可以创建符合应用商店要求的商城或工具类应用。以下是一个简单的商城类应用模板的代码示例,包括首页、商品列表页、商品详情页以及购物车功能。请注意,这只是一个基础模板,实际应用中你可能需要根据具体需求进行大量定制和优化。
项目结构
uni-app-mall/
├── pages/
│ ├── index/
│ │ ├── index.vue
│ ├── products/
│ │ ├── index.vue
│ ├── product-detail/
│ │ ├── index.vue
│ ├── cart/
│ ├── index.vue
├── App.vue
├── main.js
├── manifest.json
├── pages.json
└── store/
└── index.js
首页 (index.vue)
<template>
<view>
<navigator url="/pages/products/index">进入商城</navigator>
<navigator url="/pages/cart/index">查看购物车</navigator>
</view>
</template>
<script>
export default {
name: 'Index'
}
</script>
商品列表页 (products/index.vue)
<template>
<view>
<block v-for="(product, index) in products" :key="index">
<navigator :url="'/pages/product-detail/index?id=' + product.id">
{{ product.name }}
</navigator>
</block>
</view>
</template>
<script>
export default {
data() {
return {
products: [
{ id: 1, name: '商品1' },
{ id: 2, name: '商品2' }
]
}
}
}
</script>
商品详情页 (product-detail/index.vue)
<template>
<view>
<text>{{ product.name }}</text>
<button @click="addToCart">加入购物车</button>
</view>
</template>
<script>
import { mapState } from 'vuex';
export default {
computed: {
...mapState(['cart']),
product() {
return this.$route.query.id ? { id: this.$route.query.id, name: `商品${this.$route.query.id}` } : {};
}
},
methods: {
addToCart() {
this.$store.commit('addToCart', this.product);
}
}
}
</script>
购物车页 (cart/index.vue)
<template>
<view>
<block v-for="(item, index) in cart" :key="index">
{{ item.name }}
</block>
</view>
</template>
<script>
import { mapState } from 'vuex';
export default {
computed: {
...mapState(['cart'])
}
}
</script>
Vuex Store (store/index.js)
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export default new Vuex.Store({
state: {
cart: []
},
mutations: {
addToCart(state, product) {
state.cart.push(product);
}
}
});
以上代码展示了如何创建一个简单的商城应用模板,包括首页导航、商品列表、商品详情和购物车功能。实际开发中,你需要根据具体需求添加API请求、数据持久化、用户认证等功能。