Vue组件学习

1.组件是指页面上的某一部分,当创建一个大型的项目时,项目可以被分为很多组件,维护时就变的简单多了。
2.Vue组件分为全局组件和局部组件,局部组件需在实例中声明(注册)。
全局组件声明简例:

Vue.component('todo-item',{
    		template:'<li>item</li>' 
    	})

局部组件声明简例:

//声明一个变量等于一个对象,对象里面给一个模板
    	var TodoItem={
            template:'<li>item</li>'
    	}
    	new Vue({
    		el:"#root",
    		components:{
    			'todo-item':TodoItem
    		}
  //如不在父组件中注册局部组件不可以使用

3.组件与实例的关系:每一个组件都是一个Vue实例,反过来每一个Vue实例也可以称为一个组件,根实例的模板是挂载点里的所有内容

4.Vue组件之间通信方式:父组件通过属性的形式向子组件传值;

<body>
    <div id="root">
       <input v-model="inputValue">
       <button @click="handleSubmit">提交</button>
       <ul>
       	<!-- <li v-for="(item,index) of list" :key="index">{{item}}</li> -->
       <todo-item v-for="(item,index) of list" :key="index" :content="item"></todo-item>
       </ul>
    </div>
    <script>
    	Vue.component('todo-item',{
    		props:['content'],//props属性值可以是一个数组,用于接收外部属性
    		template:'<li>{{content}}</li>'//使用插值表达式显示content
    	})
    	new Vue({
    		el:"#root",
    		data: {
    		     inputValue:'',
    		     list: []
    		},
    		methods:{
    			handleSubmit:function(){
    				this.list.push(this.inputValue)
    				this.inputValue=''
    			}
    		}
    	})
    </script>
</body>
这段代码实现了一个简单的todolist功能,即在表单中输入内容点击提交显示在无序列表中;
子组件通过发布订阅模式来与父组件通信:emit()方法;
this.$emit('delete',this.index) 
    ```
    handleDelete:function(index){    //声明一个形参用于接收实参
        				this.list.splice(index,1)     
        			}
    

    这段代码通过emit()方法实现了当点击当前列表项时就将当前列表项删除。

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值