一步一步学习Vue(十三)

本文介绍如何在Vue.js项目中实现todolist功能,包括编辑、删除、新增和查询等操作,并通过IView UI框架的表格组件进行展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一步一步学习Vue(十三)

2018-04-19 14:00 by JerremyZhang, ... 阅读, ... 评论, 收藏, 编辑

      最近比较忙,忙着工作交接,忙着招人、忙着各种会,更新很少,这一篇也是作为本入门系列的最后一篇了,以后可能会写一些自己在前端这块的心得或者体会了,无关乎使用什么框架,可能就是原生的js、dom、编程模式或者框架相关,比如vue比如ng等等,入门篇虽然每一篇都写的比较粗糙,主要是因为我没有一个好的规划,想到哪里写到哪里,整体比较乱,不过无论怎样,但是都涉及了vue的一个知识点,这也是我几年内不常写博客,所以写一篇文章之前没有一个大纲和规划,这一点我会在后期的文章中注意。

  这一篇文章会把上一片剩下的坑填一下:

  1、编辑删除功能

  2、新增、查询功能

 

  首先我们添加删除编辑功能,在IView中,在表格中添加删除功能可以使用自定义模版列的方式,使用render函数,该render函数使用方式和vue中render函数类似,todolist.vue文件中修改我们的文件如下:

<template>
    <Table border :columns="columns" :data="items"></Table>
</template>
<script>
export default{
    data(){
        return {
            columns:[
                {
                    title:'Id',
                    key:'id'
                },
                {
                    title:'title',
                    key:'title',
                },
                {
                    title:'desc',
                    key:'desc'
                },
                {
                    title:'actions',
                    render:(createElement,params)=>{
                        return createElement('div',[
                            createElement('Button',{
                                props:{
                                    type:'primary',
                                    size:'small',
                                },
                                on:{
                                    click:()=>{
                                        this.remove(params.row.id);
                                    }
                                }
                            },'remove'),
                           
                            createElement('Button',{
                                props:{
                                    type:'error',
                                    size:'small'
                                },
                                on:{
                                    click:()=>{
                                        this.edit(params.row);
                                    }
                                }
                            },'edit')
                        ])
                    }
                
                }
            ]
        }
    },
    props:[
        'items'
    ],
    methods:{
        edit: function (todo) {
            console.log(todo);
               this.$store.commit('edit',todo);
            },
        remove: function (id) {
            console.log(id);
                this.$store.commit('remove',{id:id});
        }
    }
}
</script>

保存,我们的webpack会自动刷新浏览器,在浏览器中我们可以到如下结果:

 

学习 Vue 的过程可以分为几个清晰的步骤,从基础语法到高级概念逐步深入。以下是详细的学习路径: --- ### **第一步:掌握 HTML、CSS 和 JavaScript 基础** Vue 是基于 JavaScript 构建的框架,因此你需要先熟悉前端开发的基础知识: - **HTML**:了解基本标签和语义化结构。 - **CSS**:掌握布局(Flexbox、Grid)、响应式设计和基本动画。 - **JavaScript**:理解变量、函数、对象、数组、事件处理、DOM 操作等。 --- ### **第二步:安装 Vue 并创建第一个项目** 你可以通过以下方式开始使用 Vue: 1. 使用 CDN 引入 Vue: ```html <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> ``` 2. 创建一个简单的 Vue 应用: ```html <div id="app">{{ message }}</div> <script type="module"> const { createApp } = Vue; createApp({ data() { return { message: 'Hello Vue!' }; } }).mount('#app'); </script> ``` --- ### **第三步:学习 Vue 核心概念** #### 1. 数据绑定 - 插值表达式 `{{ }}`:用于将数据渲染到模板中。 - 指令:如 `v-bind` 绑定属性,`v-on` 监听事件,`v-model` 实现双向绑定。 示例代码: ```html <div id="app"> <p v-bind:title="message">Hover me</p> <button v-on:click="changeMessage">Change Message</button> </div> <script type="module"> const { createApp } = Vue; createApp({ data() { return { message: 'This is a tooltip' }; }, methods: { changeMessage() { this.message = 'Message changed!'; } } }).mount('#app'); </script> ``` #### 2. 条件渲染与列表渲染 - `v-if` / `v-show`:根据条件渲染元素。 - `v-for`:循环渲染列表。 示例代码: ```html <div id="app"> <ul> <li v-for="item in items" :key="item.id">{{ item.name }}</li> </ul> <p v-if="showMessage">This message is visible!</p> </div> <script type="module"> const { createApp } = Vue; createApp({ data() { return { items: [ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' } ], showMessage: true }; } }).mount('#app'); </script> ``` #### 3. 计算属性与侦听器 - **计算属性**:用于依赖缓存的复杂逻辑。 - **侦听器**:监听数据变化并执行异步操作。 示例代码: ```html <div id="app"> <p>Original Message: {{ originalMessage }}</p> <p>Reversed Message: {{ reversedMessage }}</p> </div> <script type="module"> const { createApp } = Vue; createApp({ data() { return { originalMessage: 'Hello Vue' }; }, computed: { reversedMessage() { return this.originalMessage.split('').reverse().join(''); } } }).mount('#app'); </script> ``` #### 4. 表单输入绑定 使用 `v-model` 进行双向绑定。 示例代码: ```html <div id="app"> <input v-model="message" placeholder="Enter message"> <p>{{ message }}</p> </div> <script type="module"> const { createApp } = Vue; createApp({ data() { return { message: '' }; } }).mount('#app'); </script> ``` --- ### **第四步:组件化开发** 组件是 Vue 的核心特性之一。你可以将 UI 拆分为独立、可复用的部分。 示例代码: ```html <div id="app"> <my-component></my-component> </div> <script type="module"> const { createApp, defineComponent } = Vue; const MyComponent = defineComponent({ template: `<p>This is a custom component!</p>` }); createApp(MyComponent).mount('#app'); </script> ``` --- ### **第五步:路由管理(Vue Router)** 使用 Vue Router 管理多个页面。 安装 Vue Router: ```bash npm install vue-router@4 ``` 示例代码: ```javascript // main.js import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App).use(router).mount('#app'); ``` ```javascript // router/index.js import { createRouter, createWebHistory } from 'vue-router'; import HomeView from '../views/HomeView.vue'; const routes = [ { path: '/', name: 'home', component: HomeView } ]; const router = createRouter({ history: createWebHistory(), routes }); export default router; ``` --- ### **第六步:状态管理(Vuex 或 Pinia)** 对于大型应用,建议使用 Vuex 或 Pinia 进行全局状态管理。 安装 Pinia: ```bash npm install pinia ``` 示例代码: ```javascript // main.js import { createApp } from 'vue'; import { createPinia } from 'pinia'; import App from './App.vue'; const pinia = createPinia(); const app = createApp(App); app.use(pinia); app.mount('#app'); ``` ```javascript // stores/counterStore.js import { defineStore } from 'pinia'; export const useCounterStore = defineStore('counter', { state: () => ({ count: 0 }), actions: { increment() { this.count++; } } }); ``` --- ### **第七步:构建工具与项目结构** 学习如何使用 Vue CLI 或 Vite 创建项目,并了解项目目录结构。 安装 Vue CLI: ```bash npm install -g @vue/cli ``` 创建项目: ```bash vue create my-project ``` --- ### **第八步:部署与优化** 学习如何打包项目并部署到服务器: ```bash npm run build ``` 优化技巧: - 使用懒加载路由。 - 图片压缩与资源优化。 - 使用 Webpack 分包。 --- ### **第九步:进阶内容** - 自定义指令 - 插件开发 - TypeScript 支持 - 单元测试(Jest/Vitest) --- ### **第十步:实战项目** 通过实际项目巩固技能,例如: - Todo List - 博客系统 - 电商网站 --- ##
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值