Vuecli搭建项目,实现正在进行todolisit操作

vuecli搭建vue项目,实现正在进行todolist的操作


基本布局操作


1.找到 src 文件夹下的 views 文件夹,在里面新建一个文件 myinput.vue

 

2.在数据中心自定义一个对象数组,并在视图层通过 v-for渲染出来

data() {
        return {
            list:[
                {name:'a',done:true},
                {name:'b',done:true},
                {name:'c',done:false},
                {name:'d',done:false}
            ]
        };
    },
<ul class="pp">
            <li v-for="(p,index) in list" :key="index">
                {
   
   {p.name}}
            </li>
        </ul>

3.找到左侧文件夹中的 router 文件夹 下的index.js 文件

(1) 在上方引入 myinput

import myinput from '../views/myinput.vue'

(2) 在const routes 中配置 myinput 的路由规则

{
    path:'/myinput',
    name:'myinput',
    component:myinput
  }

4.找到左侧的 App.vue 文件,在上方的视图层通过标签跳转,去跳转我们的 myinput

<router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link> |
      <router-link to="/myinput">myinput</router-link>

这时候,打开终端,进入当前项目后,输入  npm run serve

 运行结束后会出现两个网址

按住 Ctrl 单击打开,进来之后就是这样的,因为这是做个简单的例子,所以不多做样式

 点击上方的 myinput 就可以了


添加方法 

1.回到myinput文件中,在视图层的 ul 列表上面添加一个 input 文本框,并在data数据中心定义一个 mes:'',为空,通过 v-model绑定到 input 上

<input type="text" v-model="mes">
  mes:'',

2.在methods 定义一个 add 方法

add(){
            // 当没有输入内容时
            if(this.mes == ''){
                // 弹窗提醒输入内容
                window.alert('请输入内容');
                // 返回false,什么也不做
                return false
            }
            // 输入内容后向数组的最好以为添加元素
            this.list.push({name:this.mes,done:false})
            this.mes = ''
        }

3.在input 上添加 键盘按下事件,绑定在 enter上,当敲击回车时,添加进一个内容

<input type="text" v-model="mes" @keypress.enter="add">


添加删除方法

在视图层的 li 里为每一项添加一个按钮,并添加方法 del 传入参数 index

在方法中心定义在这个方法

<li v-for="(p,index) in list" :key="index">
                {
   
   {p.name}}--
                <button @click="del(index)">删除</button>
</li>
 del(index){
            this.list.splice(index,1)
        }


通过watch监听让页面的数据储存到本地储存 localStorage 中,并在created 生命周期函数中进行绑定,这样页面数据就与localStorage中的数据同步了

 created(){
        // 拿到本地存储中的数据
        let todoList = localStorage.todoList;
        if(todoList){
            this.list = JSON.parse(todoList);
        }
    },
    watch:{
        list:{
            handler(list){
                console.log(list);
                

                localStorage.setItem('todoList',JSON.stringify(list))
            },

        }
    },

在页面进行操作时注意查看控制台

 就算刷新之后,数据还是会保持同步

猜你喜欢

转载自blog.csdn.net/lolhuxiaotian/article/details/122038418
今日推荐