本代码示例展示了一个 Vue.js 组件,用于添加跟踪信息,例如快递单号等。该组件可以集成到各种应用程序中,例如电子商务网站或包裹跟踪系统。
该组件具有以下基本功能:
1. 初始化状态
在 <script>
部分,我们使用 Vue.js 的 ref
钩子初始化一个名为 trackingNumber
的响应式状态,用于存储输入的跟踪号码。
const trackingNumber = ref('')
2. 添加跟踪信息
当用户单击 "Add tracking" 按钮时,addTracking
方法被触发。此方法负责调用 API 添加跟踪号码。在实际应用程序中,此 API 调用将发送请求到服务器,服务器将处理跟踪号码并返回结果。
const addTracking = () => {
// API call to add tracking number
console.log('Tracking number:', trackingNumber.value)
}
3. HTML 模板
<template>
部分定义了组件的 HTML 结构。它包括一个带有输入框和按钮的表单,以及一个显示 "Not now" 文本的链接。
<template>
<div class="bg-gray-100 h-screen flex justify-center items-center">
<div class="bg-white rounded-lg shadow-lg w-1/2">
<div class="flex justify-center items-center p-4">
<img
src="https://source.unsplash.com/random/100x100"
alt=""
class="w-16 h-16 rounded-full"
/>
<div class="ml-4">
<h1 class="text-xl font-semibold">Add tracking information</h1>
<p class="text-sm text-gray-500">
We will send you the link where you can track your card location at
any point of time
</p>
</div>
</div>
<div class="border-t border-gray-200">
<div class="flex justify-between items-center p-4">
<div class="flex items-center">
<input
type="text"
placeholder="Enter tracking number"
class="border border-gray-300 rounded-md p-2"
/>
<button
class="bg-blue-500 hover:bg-blue-700 text-white font-semibold px-4 py-2 rounded-md ml-4"
>
Add tracking
</button>
</div>
<div>
<p class="text-sm text-gray-500">Not now</p>
</div>
</div>
</div>
</div>
</div>
</template>
4. CSS 样式
<style>
部分包含组件的 CSS 样式,用于定义外观和布局。
<style>
/* 省略 CSS 样式代码 */
</style>
开发这段代码的过程让我深入了解了 Vue.js 的响应式状态管理和事件处理。我学会了如何创建自定义组件,并将其集成到应用程序中。
对于未来的扩展和优化,可以考虑以下方面: