vue组件化开发改造List Item

<!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>组件化开发改造listItem</title>
    <script src="./vue.js"></script>
</head>
<body>
    <div id="app">
        <input type="text" v-model="inputValue">
        <button @click="handerClick">提交</button>
        <!-- 这是第一种方式不使用组件化,直接通过v-for去循环我们list数组里的 -->
            <!-- <ul>
                <li v-for="item in list">{{item}}</li>
            </ul>           -->
        <!-- 这里我们使用的是第二种方式,即将li标签合成为一个全局组件 -->
        <!-- 2.这里我们使用v-bind简写为":"去接收父组件的值,也就是将item通过v-bind方法借助content变量去传给我们创建的子组件list-item,也可以叫绑定 -->
        <list-item :content="item" v-for="item in list">{{item}}</list-item>
    </div>
 
    <script>
        // 1.每一部分我们都可以看成一个组件,所以我们尝试去使用组件去代替上面li标签
        // Vue.js提供给我们一个自定义组件的方法,component,这里我们先定义一个全局组件
        // Vue.component("ListItem",{
        //     // 3.我们通过v-bind去绑定了父组件的值以后,这时候就需要用到props去接收父组件的值了
        //     props:[
        //         'content'
        //     ],
        //     // 4.这里我们使用插值表达式去引入值到我们的模板中
        //     template: '<li>{{content}}</li>'
        // })
        // 第三种方式我们将其定义为局部组件,先声明再注册,(全局组件声明与注册在一起),要注意局部的注册是components
        var ListItem = {
            props: [
                'content'
            ],
            template: '<li>{{content}}</li>'
        }

        var app = new Vue({
            el: '#app',
            // 注册局部组件,这里是components哦
            components: {
                ListItem: ListItem
            },
            data:{
                list: [],
                inputValue: ''
            },
            methods: {
                handerClick:function(){
                    //将输入框内容添加到list数组中
                    app.$data.list.push(this.inputValue);
                    //每次添加结束以后我们就将输入框中的内容清空
                    this.inputValue=''
                }
            },
        })
    </script>
</body>
</html>

我们这里使用简单的小组件去演示组件的逻辑,通过点击按钮,将输入框中的内容添加到页面展示出来,另外我这里使用的是下载下来的vue.js,你们也可以选用cdn的方式引入vue.js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值