使用Vue 3.0 Composition API构建购物清单应用 - Web前端
作者:98wpeu发布时间:2026-09-12分类:网页前端技术浏览:6

本文将展示vue Composition API如何使您的代码更具可读性和可维护性。Vue 3中引入的Composition API替代了options API,可更轻松地处理方法和组件状态。
Composition API是在VUE 3应用程序中创建和组织组件的新(和可选)方式。通过允许对特定功能(例如搜索)的所有代码进行分组,可以更直观地定义反应式组件逻辑。使用Vue Composition API将使您的应用程序在多个组件之间更具可伸缩性和可重用性。
在本文中,我们将使用Vue Composition API构建一个简单的购物清单应用。

先决条件
对于本教程,您需要:
对html,CSS,javascript和Vue的基本了解
文字编辑器
网络浏览器
node.js
Vue CLI
设置Vue应用程序
现在让我们开始安装Vue Cli:
npm install -g vue-cli
此命令将全局安装Vue。
我们将使用Vue CLI构建一个简单的应用程序。为此,请打开您的终端并输入以下内容:
vue create vueshopPinglist
安装后,使用进入文件夹cd vueshoppinglist并运行npm run serve。

这将启动开发服务器,使您可以在localhost:8080上查看您的应用程序。
现在是时候建立一个不错的Vue项目了。
Vue Composition API
要从项目的根目录安装Composition API,请运行以下命令:
npm install --save @vue/composition-api
成功安装后,我们将其导入到我们的项目中。
进行修改src/mAIn.vue以在我们的应用程序中全局注册Composition API,以便我们可以在所有应用程序组件中使用它:
import Vue from 'vue'
import APP from './app.vue'
import VueCompositionApi from '@vue/composition-api'
Vue.config.PRoductionTip = false
Vue.use(VueCompositionApi)
new Vue({
render: h => h(app),
}).$mount('#App')建立用户界面
我们需要一个组件来容纳应用程序的UI。ShoppingList.vue在src/components/目录中创建一个新组件,并将以下内容粘贴到文件中:
<template>
<section>
<div class="FORM-container">
<h2>Add Item</h2>
<form>
<div>
<label>Product name</label>
<br />
<input type="text" />
</div>
<div>
<button type="submit" class="submit">Add Item</button>
</div>
</Form>
</div>
<div class="list-container">
<ul>
<li>
Shopping List app
<span style="float:right;padding-right:10px;">
<button>X</button>
</span>
</li>
</ul>
</div>
</section>
</template>
<script>
Export default {};
</script>
<style scoped>
input {
width: 20%;
height: 30px;
border: 2px solid green;
}
.submit {
margin: 10px;
padding: 10px;
border-radius: 0px;
border: 0px;
background: green;
color: white;
}
ul li {
list-style: none;
border: 2px solid green;
width: 30%;
margin-top: 10px;
}
</style>上面的代码段是我们ui的初始样板。现在,我们将导入这个新组件ShoppingList.vue到App.vue如下所示:
<template>
<div id="app">
<img alt="Shoppingd List" src="./assets/shopping.png">
<shopping-list msg="Welcome to Your vue.js App"/>
</div>
</template>
<script>
import ShoppingList from './components/ShoppingList.vue'
export default {
name: 'App',
components: {
ShoppingList
}
}
</script>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-WEBkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>使用Vue Composition API
让我们开始将Composition API导入到我们的组件中ShoppingList.Vue:
<script>
import { reactive } from "@vue/composition-api";
export default {};
</script>在这里,我们reactive从Vue Composition API 导入。
现在,通过将模板修改为以下内容,将一些事件侦听器添加到应用程序:
<template>
<section>
<div class="form-container">
<h2>My Shopping List App</h2>
<form @submit.prevent="addItem">
<div>
<label> Product Name</label>
<br />
<input v-model="state.input" type="text" />
</div>
<div>
<button type="submit" class="submit">Add Item</button>
</div>
</form>
</div>
<div class="list-container">
<ul v-for="(Item,index) in state.Items" :key="index">
<li>
{{Item}}
<span style="float:right;padding-right:10px;">
<button @click="removeItem(index)">X</button>
</span>
</li>
</ul>
</div>
</section>
</template>Vue 3使用dataand methods选项来定义状态和添加函数,而不是访问setup方法。在生命周期挂钩之后beforeCreate和之前调用此方法create。
现在,我们将state在Setup方法中声明变量和方法,如下所示:
<script>
import { Reactive } from "@vue/composition-api";
export default {
setup() {
const { state, addItem, removeItem } = ItemList();
return { state, addItem, removeItem };
}
};
</script>声明变量和方法后,我们需要定义组件状态:
<script>
import { Reactive } from "@vue/composition-api";
export default {
setup() {
const { state, addItem, removeItem } = ItemList();
return { state, addItem, removeItem };
}
};
function ItemList() {
let state = reactive({
input: "",
Items: ["Grocery"]
});
return { state };
</script>这里的状态仅限于该ItemList功能。我们定义了input要绑定到输入字段的状态,还定义了Items将容纳所有的数组Items。
让我们定义一下addItem函数:
<script>
import { reactive } from "@vue/composition-api";
export default {
setup() {
const { state, addItem, removeItem } = ItemList();
return { state, addItem, removeItem };
}
};
function ItemList() {
let state = reactive({
input: "",
Items: ["Grocery"]
});
let addItem = () => {
state.Items.push(state.input);
state.input = "";
};
return { state, addItem };
</script>添加功能将获取输入字段中的数据,并使用push方法将其推入Items数组。
让我们实现删除项目。我们将获取的索引,Item然后Item使用splice方法从用户数组中删除:
<script>
import { reactive } from "@vue/composition-api";
export default {
setup() {
const { state, addItem, removeItem } = ItemList();
return { state, addItem, removeItem };
}
};
function ItemList() {
let state = reactive({
input: "",
Items: ["Grocery"]
});
let addItem = () => {
state.Items.push(state.input);
state.input = "";
};
let removeItem = i => {
state.Items.splice(i, 1);
};
return { state, addItem, removeItem };
</script>这一切,我们希望能够从模板访问被返回是很重要的两个中itemList和setup()的方法。在代码片段的末尾,我们将返回状态或方法。
我们的购物清单应用现已完成:

结论
最后,我们使用Vue 3 Composition API构建了购物清单应用程序。有趣的是,在Vue 2中如何使用Composition API。我观察到的主要优点之一是方法的处理,并且组件状态更易于访问,并且其反应性更强。
需要源码的加Q群,找群主。
相关推荐
- Javascript:实现鼠标放到图片上后的放大镜效果 - Web前端
- 聊聊vue中的路由原理以及一些简单的应用 - Web前端
- 微软的TypeScript 4.0编程语言问世:这是一个重要的里程碑 - Web前端
- 提升和优化变量和函数的应用 - Web前端
- 为什么苹果的反托拉斯之争可能意味着iOS的终结 - Web前端
- 分享前端面试中面试官提到的Node.js一些问题与解决方案 - Web前端
- 入门前端框架的必备知识点:深度比较React和Angular - Web前端
- Microsoft对开发人员:告别基于云的开发环境Visual Studio Codespaces - Web前端
- 分享按钮点击CSS3特效:酷炫发散效果 - Web前端
- TypeScript创作者:编程语言如何战胜Microsoft的开源恐惧 - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4【第六章】Foundation之按钮和下拉功能 - Web前端
- 5基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 9在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


