Vue学习:使用组件改造ToDoList与组件间的传值

本文介绍了如何使用Vue将原本的ToDoList改造为组件化,并详细讲解了组件定义、替换li标签、通过v-bind传值以及组件间的事件通信。通过定义全局和局部组件,实现列表项的动态添加与删除,展示了Vue中组件的复用性和父子组件间的数据传递。
摘要由CSDN通过智能技术生成

Vue学习:使用组件改造ToDoList与组件间的传值

一、原本的ToDoList

每一个li可以当作页面的一个部分,便可以拆开来编写,原本这里是利用v-for循环li标签来显示的,可以将li标签组件化

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Hello World</title>
        <script src="./vue.js"></script>
    </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>
    </body>
    <script>
        var app = new Vue({
    
            el:'#app',
            data:{
    
                list:[],
                inputValue:''
            },
            methods:{
    
                handleBtnClick:function(){
    
                    this.list.push(this.inputValue),
                    this.inputValue=''
                }
            }
        })
    </script>
</html>

二、组件化改造ToDoList
2.1 定义全局组件

vue.component定义的是全局组件,组件名称是TodoItem,内容是li标签

        //Vue定义全局组件
        Vue.component("TodoItem",{
            template:"<li>todo item</li>"
        })
2.2 代替li标签

每点一次提交,都会多一次< li >todo item< /li >显示在页面,因为我们定义的组件名称是TodoItem,所以将大写的T和I用t和i代替,但是后面的驼峰都需要接一个-符号

            <ul>
               <!--<li v-for="item in list">{
   {item}}</li>--> 
               <todo-item v-for="item in list"></todo-item>
            </ul>
2.3 v-bind传值

我们上面2.2中li标签内容只是显示todo item,在相对于我们外层容器div="app"来说,我们定义的组件是子组件,所以需要传递内容给子组件

这里便需要用到v-bind,这里将list每一项内容赋值给item,再把item利用v-bind的形式传递给todo-item组件,利用content来传值,所以需要在组件中去接收,接收父组件传值的需要定义props

<!DOCTYPE html>
<html lang="en">
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值