当前位置:首页 > VUE

vue实现添加内容代码

2026-01-22 11:41:51VUE

以下是一个基于 Vue.js 实现添加内容的代码示例,包含核心逻辑和关键步骤:

基础实现

模板部分(Template)

vue实现添加内容代码

<template>
  <div>
    <input v-model="newItem" placeholder="输入内容" @keyup.enter="addItem">
    <button @click="addItem">添加</button>
    <ul>
      <li v-for="(item, index) in items" :key="index">
        {{ item }}
        <button @click="removeItem(index)">删除</button>
      </li>
    </ul>
  </div>
</template>

脚本部分(Script)

vue实现添加内容代码

<script>
export default {
  data() {
    return {
      newItem: '',
      items: []
    }
  },
  methods: {
    addItem() {
      if (this.newItem.trim()) {
        this.items.push(this.newItem)
        this.newItem = ''
      }
    },
    removeItem(index) {
      this.items.splice(index, 1)
    }
  }
}
</script>

进阶优化

添加数据验证

methods: {
  addItem() {
    if (!this.newItem.trim()) {
      alert('内容不能为空')
      return
    }
    this.items.push(this.newItem.trim())
    this.newItem = ''
  }
}

使用计算属性

computed: {
  itemCount() {
    return this.items.length
  }
}

完整组件示例

<template>
  <div class="item-manager">
    <div class="input-group">
      <input 
        v-model="newItem" 
        placeholder="输入新内容"
        @keyup.enter="handleAdd"
        class="input-field"
      >
      <button @click="handleAdd" class="add-btn">添加</button>
    </div>

    <div v-if="items.length > 0" class="item-list">
      <div v-for="(item, index) in items" :key="index" class="item">
        <span>{{ item }}</span>
        <button @click="handleRemove(index)" class="remove-btn">×</button>
      </div>
    </div>

    <p v-else class="empty-tip">暂无内容,请添加</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      newItem: '',
      items: []
    }
  },
  methods: {
    handleAdd() {
      const content = this.newItem.trim()
      if (!content) return

      this.items.push(content)
      this.newItem = ''
    },
    handleRemove(index) {
      this.items.splice(index, 1)
    }
  }
}
</script>

<style scoped>
.item-manager {
  max-width: 500px;
  margin: 0 auto;
}
.input-group {
  display: flex;
  margin-bottom: 20px;
}
.input-field {
  flex: 1;
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 4px;
}
.add-btn {
  margin-left: 10px;
  padding: 8px 16px;
  background: #42b983;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
.item-list {
  border: 1px solid #eee;
  border-radius: 4px;
}
.item {
  display: flex;
  justify-content: space-between;
  padding: 10px;
  border-bottom: 1px solid #eee;
}
.item:last-child {
  border-bottom: none;
}
.remove-btn {
  background: none;
  border: none;
  color: #ff6b6b;
  cursor: pointer;
  font-size: 16px;
}
.empty-tip {
  color: #999;
  text-align: center;
  padding: 20px;
}
</style>

关键点说明

  • 使用v-model实现双向数据绑定
  • 通过@keyup.enter监听回车事件
  • 使用数组的push方法添加新项
  • 使用splice方法删除指定项
  • 添加了基本的样式美化
  • 包含空状态提示

可以根据实际需求进一步扩展功能,如添加本地存储、服务端交互等。

标签: 代码内容
分享给朋友:

相关文章

react如何代码优化

react如何代码优化

减少不必要的重新渲染 使用 React.memo 包装函数组件以避免在 props 未变化时重新渲染。对于类组件,可以通过 shouldComponentUpdate 或继承 PureComponen…

网页表格制作css代码

网页表格制作css代码

基础表格样式 使用CSS为HTML表格添加基础样式,包括边框、间距和背景色: table { width: 100%; border-collapse: collapse; margin…

vue实现表格内容

vue实现表格内容

Vue实现表格内容的方法 使用原生HTML表格 在Vue模板中直接使用HTML的<table>标签构建表格结构,通过v-for指令动态渲染数据。 <template> &…

vue实现内容发布

vue实现内容发布

Vue 实现内容发布功能 在 Vue 中实现内容发布功能,通常需要结合表单处理、数据绑定和后端 API 交互。以下是实现的基本步骤和代码示例。 创建发布表单组件 在 Vue 组件中创建一个表单,用于…

vue简单代码实现

vue简单代码实现

以下是一个基于 Vue 3 的简单代码实现示例,包含基础功能演示: 基础模板结构 <!DOCTYPE html> <html lang="en"> <head>…

vue动画实现代码

vue动画实现代码

Vue 动画实现代码示例 Vue 提供了内置的过渡和动画支持,主要通过 <transition> 和 <transition-group> 组件实现。以下是常见的动画实现方式:…