vue单页面的增删改查项目

vue脚手架的基本使用

一、基本知识

1、安装脚手架

全局安装

npm install -g @vue/cli

2、使用命令创建项目

vue create my-project

3、图形化创建项目

vue ui

二、vue单页面的增删改查项目

1、编写四个vue组件(分别是增删改查的组件)

在这里插入图片描述

2、实现将数据显示在表格中

2.1编写数据
<script>
export default {
    data:function(){
        return {
            posts:[
                {id:1,title:'静夜思',content:'窗前明月光',create_time:Date.now()},
                {id:2,title:'桃花源记',content:'陶渊明',create_time:Date.now()},
                {id:3,title:'长恨歌',content:'白居易',create_time:Date.now()},
                {id:4,title:'渔家傲·秋思',content:'范仲淹',create_time:Date.now()},
            ]
        }
    }
}
</script>
2.2通过v-for显示在table中
<template>
    <div class="list">
        <table>
            <thead>
                <th>编号</th>
                <th>标题</th>
                <th>时间</th>
            </thead>
            <tbody>
                <tr v-for="item in posts" :key="item.id">
                    <td>{{item.id}}</td>
                    <td>{{item.title}}</td>
                    <td>{{item.create_time}}</td>
                </tr>
            </tbody>
        </table>
    </div>
</template>
2.3在index.js中引入List.vue组件,并编写路由规则
import List from '../views/List.vue'

const routes = [
  {
    path: '/',
    name: 'List',
    component: List
  }
]

3、实现详情页面展示

3.1通过router-link进行传值
<router-link :to="{name:'Detail',params:{id:item.id}}">详情</router-link>
3.2在index.js引入并编写路由规则
import Detail from '../views/Detail.vue'

{
    path: '/detail/:id',
    name: 'Detail',
    component: Detail
  }
3.3先在Detail看看id值是否传递过来
<h1>{{.$route.params.id}}</h1>
3.4将数据也移到本页面并编写created函数

4、实现增加功能

4.1先在列表页面写一个增加的标签
<router-link to="/add">增加</router-link>
4.2编写Add.vue页面
<template>
    <div class="add">
        <form action="">
            <div>
                <label for="title">标题</label>
                <input type="text" id="title" v-bind="title">
            </div>
            <div>
                <label for="content">内容</label>
                <textarea name="" id="content" cols="30" rows="10" v-bind="content"></textarea>
            </div>
            <input type="button" value="提交" @click="ad">
        </form>
    </div>
</template>
4.3在index.js页面引入并编写路由规则
import Add from '../views/Add.vue'

{
    path: '/add',
    name: 'Add',
    component: Add
  },
4.4将数据移入一份到Add.vue页面并编写函数
export default {
    data:function(){
        return {
            posts:[
                {id:1,title:'静夜思',content:'窗前明月光',create_time:Date.now()},
                {id:2,title:'桃花源记',content:'陶渊明',create_time:Date.now()},
                {id:3,title:'长恨歌',content:'白居易',create_time:Date.now()},
                {id:4,title:'渔家傲·秋思',content:'范仲淹',create_time:Date.now()},
            ],
            title:'',
            content:''
        }
    },
    methods:{
        ad:function(){
            this.posts.push({id:5,title:this.title,content:this.content,create_time:Date.now()})
            console.log(this.posts);
        }
    }
}
</

5、实现编辑功能

5.1将id传值给Update.vue页面
<router-link :to="{name:'Update',params:{id:item.id}}">编辑</router-link>
5.2编写Update.vue页面
<template>
    <div class="update">
        <form action="">
            <div>
                <label for="title">标题</label>
                <input type="text" id="title" v-model="title">
            </div>
            <div>
                <label for="content">内容</label>
                <textarea name="" id="content" cols="30" rows="10" v-model="content"></textarea>
            </div>
            <input type="button" value="提交" @click="up">
        </form>
    </div>
</template>
5.3在index.js页面引入并编写路由规则
import Update from '../views/Update.vue'

{
    path: '/update',
    name: 'Update',
    component: Update
  },
5.4在Update.vue页面引入数据并编写函数
created:function(){
        let post_id=this.$route.params.id;
        let post_res=this.posts.find((item)=>{
            return item.id==post_id
        })
        this.title=post_res.title
        this.content=post_res.content
    },
    methods:{
        up:function(){

        }
    }

6、实现删除功能

6.1添加一个a标签并增加单击事件
<a href="#" @click="del(item.id)">删除</a>
6.2添加一个函数来处理删除事件
methods:{
        del:function(id){
            this.posts.forEach((item,index)=>{
                if(item.id==id){
                    this.posts.splice(index,1)
                }
            })
        }
    }
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我可以为您解答这个问题。 首先,您需要安装Vue CLI,可以使用以下命令: ``` npm install -g @vue/cli ``` 接着,使用以下命令创建一个新的Vue项目: ``` vue create student-management-system ``` 完成后,进入项目目录并启动开发服务器: ``` cd student-management-system npm run serve ``` 现在,您可以开始编代码了。以下是一个简的学生管理系统的增删改查的实现,可供参考: 首先,在src目录下创建一个名为"components"的文件夹,用于存放Vue组件。 在components文件夹下创建一个名为"StudentList.vue"的文件,用于展示学生列表: ```html <template> <div> <h2>学生列表</h2> <table> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>操作</th> </tr> </thead> <tbody> <tr v-for="(student, index) in students" :key="index"> <td>{{ student.name }}</td> <td>{{ student.age }}</td> <td>{{ student.gender }}</td> <td> <button @click="editStudent(student)">编辑</button> <button @click="deleteStudent(student)">删除</button> </td> </tr> </tbody> </table> <button @click="addStudent">添加学生</button> <div v-if="showEditModal"> <h3>编辑学生信息</h3> <form> <div> <label for="name">姓名:</label> <input type="text" id="name" v-model="editStudentData.name"> </div> <div> <label for="age">年龄:</label> <input type="number" id="age" v-model="editStudentData.age"> </div> <div> <label for="gender">性别:</label> <select id="gender" v-model="editStudentData.gender"> <option value="男">男</option> <option value="女">女</option> </select> </div> <button type="button" @click="saveStudent">保存</button> <button type="button" @click="closeEditModal">取消</button> </form> </div> </div> </template> <script> export default { data() { return { students: [ { name: "张三", age: 18, gender: "男" }, { name: "李四", age: 19, gender: "女" }, { name: "王五", age: 20, gender: "男" }, ], showEditModal: false, editStudentData: {}, }; }, methods: { addStudent() { this.showEditModal = true; this.editStudentData = {}; }, editStudent(student) { this.showEditModal = true; this.editStudentData = { ...student }; }, deleteStudent(student) { this.students = this.students.filter((s) => s !== student); }, saveStudent() { if (this.editStudentData.name && this.editStudentData.age && this.editStudentData.gender) { if (this.students.includes(this.editStudentData)) { this.students = this.students.map((s) => (s === this.editStudentData ? { ...this.editStudentData } : s)); } else { this.students.push({ ...this.editStudentData }); } this.showEditModal = false; this.editStudentData = {}; } }, closeEditModal() { this.showEditModal = false; this.editStudentData = {}; }, }, }; </script> ``` 在App.vue文件中引入StudentList组件: ```html <template> <div id="app"> <StudentList /> </div> </template> <script> import StudentList from "./components/StudentList.vue"; export default { name: "App", components: { StudentList, }, }; </script> ``` 现在,您可以在浏览器中查看学生管理系统,并进行增删改查操作了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值