0%

【Vue】利用Vue实现ToDoist

1. 指令

  • v-on:click 绑定click事件(可以简写为:@click)
  • v-bind:content绑定属性(可以给子组件传值)简写为:content
  • v-for="item in list" 将list中的元素遍历出来。
  • v-model 模型绑定

2. Vue实例

  • el Vue接管区域
  • data 数据
  • methods 事件绑定的方法

3. 数值显示方法

  • 插值法:{ {item}}

4. 实现ToDoList代码(添加)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="../vue.js"></script><!--本地运行请修改Vue.js引用路径。-->
</head>
<body>
    <div id="app">
        <input type="text" v-model="inputValue">
        <button v-on:click="handleBtnClick">提交</button>
        <ul>
            <li v-for="item in list">{ {item}}</li>
        </ul>
    </div>
    <script>
        var app=new Vue({
            el:'#app',
            data:{
                list:[],
                inputValue:''
            },
            methods:{
                handleBtnClick:function(){
                    this.list.push(this.inputValue);
                    this.inputValue="";
                }
            }
        })
    </script>
</body>
</html>

5. 组建的运用于传值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="../vue.js"></script>
</head>
<body>
    <div id="app">
        <input type="text" v-model="inputValue">
        <button v-on:click="handleBtnClick">提交</button>
        <ul>
            <compontone :content="item" :index="index" v-for="(item,index) in list" @delete="itemdelet"></compontone> <!--监听子组件delete事件-->
        </ul>
    </div>
    <script>
        var compontone={
            props:["content","index"],
            template:`<li @click="removeitem">{ {content}}</li>`,
            methods:{
                removeitem:function(){
                    //alert(this.index)
                    this.$emit("delete",this.index);//触发delete事件,并传值
                }
            }
        }

        var app=new Vue({
            el:'#app',
            data:{
                list:[],
                inputValue:''
            },
            components:{
                compontone:compontone
            }
            ,
            methods:{
                handleBtnClick:function(){
                    this.list.push(this.inputValue);
                    this.inputValue="";
                },
                itemdelet:function(index){
                        this.list.splice(index,1);//删除对应index的值。
                }
            }
        })
    </script>
</body>
</html>