vue组件

全局组件

<!-- 全局组件定义 -->
Vue.component('todo-list',{
    template:"<li>{{content}}</li>"
})
    
<!-- 组件使用-->
<todo-list></todo-list>

局部组件

	<div id="app">
		<todolist ></todolist>
	</div>
	<script type="text/javascript">
		<!-- 局部组件定义 -->
		var todolite={
			template:"<div>hello</div>"
		}
		var app=new Vue({
			el:"#app",
			// 引入局部组件
			components:{
				'todolist':todolite
			}
		});
	</script>

组件传值和接收

    <div id="app">
		<ul>
			<!-- v-bind:content="item" 组件传值 -->
			<todo-list v-for="item in list" v-bind:content="item"></todo-list>
		</ul>
	</div>
	<script type="text/javascript">
		<!-- 组件定义 -->
		Vue.component('todo-list',{
			// 组件接收数据
			props:['content'],
			template:"<li>{{content}}</li>"
		})
    </script>

父组件和子组件传递数据

//父子组件交互案例

<body>
    <div id="app">
        <input type="text" v-model="msg">
        <button v-on:click="handle">提交</button>
        <ul>
           //父组件给子组件传递值用v-bind:
           <todo-list v-for="(item,index) in content" v-bind:item="item" v-bind:index="index" v-on:delete="delHandle"></todo-list>
        </ul>
    </div>
</body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

    <script>
        
        // 局部注册
        var todo={
            props:['item','index'],
            template:'<li v-on:click="del">{{item}}</li>',
            methods: {
                del:function (){
                    // 触发当前实例上的事件。附加参数都会传给监听器回调
                    //子组件向父组件传递
                    this.$emit('delete',this.index);
                }
            }
        }

        var app=new Vue({
            el:"#app",
            data:{
                content:[],
                msg:""
            },
            methods: {
                handle:function(event){
                    this.content.push(this.msg);
                    this.msg="";
                },
                delHandle:function(index){
                    this.content.splice(index);
                }
            },
            components: {
                'todoList':todo
            }
        })
    </script>
</html>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值