我是靠谱客的博主 陶醉水壶,最近开发中收集的这篇文章主要介绍Vue学习笔记(六)建立一个todolist练习一个简单的todolist为todolist进行组件拆分组件与实例的关系,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一个简单的todolist

我们将之前学过的知识进行汇总,写出一个简单的输入列表。

效果如下。可以通过点击按钮为列表添加新的元素。

<body>
    <div id="root">
//添加双向数据绑定
        <input v-model="inputValue"/>
//为按钮添加点击事件
        <button @click="handleClick">Go</button>
//让表格显示数组中的各项内容
        <ul>
            <li v-for="(item,index) of dataList":key="index">{{item}}</li>
        </ul>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                inputValue:"",
                dataList:[],
            },
            methods:{
                handleClick:function(){
                    this.dataList.push(this.inputValue);
                    this.inputValue="";
                }
            }
        })
    </script>
</body>

为todolist进行组件拆分

在使用Vue时,某些内容可以拆分为单个的组件,方便我们重复使用和单独维护。

原则:可复用、可组合

这里我们将列表<li>元素进行组检拆分,将其拆分为单个的可复用组件。

全局组件

使用Vue.component创建全局组件,任何Vue对象都可以直接引用

<body>
    <div id="root">
        <ul>
            <todo-item></todo-item>
        </ul>
    </div>
    <script>
<!-- 使用Vue.component创建全局组件,任何Vue对象都可以直接引用 -->
        Vue.component('todo-item',{
            template:'<li>123</li>'
        });
        new Vue({
            el:'#root',
        })
    </script>
</body>

局部组件

使用var声明局部组件。

对于局部组件,只能通过在Vue对象中进行组件声明后方可调用。

<body>
    <div id="root">
        <ul>
            <todo-item></todo-item>
        </ul>
    </div>
    <script>
//声明局部组件
        var TodoItem={
            template:'<li>item</li>'
        }
        new Vue({
            el:'#root',
//在Vue实例中声明组件
            components:{
                'todo-item':TodoItem,
            }
        })
    </script>
</body>

进行组件拆分后的todoList:

<body>
    <div id="root">
        <input v-model="inputValue"/>
        <button @click="handleClick">Go</button>
        <ul>
            <todo-item
                v-for="(item,index) of dataList"
                    :key=index
//建立content属性保存数据
                    :content=item
            ></todo-item>
        </ul>
        
    </div>
    <script>
        var TodoItem={
//使用props属性引入content
            props:['content'],
            template:'<li>{{content}}</li>'
        }
        new Vue({
            el:'#root',
            data:{
                inputValue:'',
                dataList:[],
            },
            components:{
                'todo-item':TodoItem,
            },
            methods:{
                handleClick:function(){
                    this.dataList.push(this.inputValue);
                    this.inputValue="";
                }
            }
        })
    </script>
</body>

组件与实例的关系

在Vue中,每个组件都是一个实例,每个实例都是一个组件。

他们都可以有自己的模板。

根实例没有自定义模板,他的模板来自于挂载点以下的页面元素。

最后

以上就是陶醉水壶为你收集整理的Vue学习笔记(六)建立一个todolist练习一个简单的todolist为todolist进行组件拆分组件与实例的关系的全部内容,希望文章能够帮你解决Vue学习笔记(六)建立一个todolist练习一个简单的todolist为todolist进行组件拆分组件与实例的关系所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部