Vue组件

vue

定义局部组件:

        var TodoItem = {

props:['content'], //接收传进来的值,下面例子没有传值,所以没有写

            template: '组件内容'

        }

 局部组件调用,需要在vue的实例里面添加一个components对这个局部组件进行一**册:如下

定义全局组件:

        Vue.component('组件名',{

props:['content'],

            template: '组件内容'

        })

通过 :content="item" 传入item

组件里面接收传入的值 props:['content']


每一个Vue组件,都是一个Vue实例,Vue实例有的功能,Vue组件都同样拥有也可以定义 methods:{ } 这些属性,反过来,每一个实例也都是一个组建,如果一个vue实例里面没有定义template,那么这个实例会把它对应的挂载点下(el:"#id")的所有内容当作模板

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset = "UTF-8">
<title>Vuetest</title>
<script src="vue.js"></script>
</head>
<body>
<div id="root">
   <input type="text" v-model="text">    <input type="button" value="添加" @click="add">
   <ul>
      <todo-item 
  v-for="(item,index) in list" 
  :key="index" 
  :content="item"
  :index="index"
  @delete="del"
  ></todo-item>  
  <!-- @delete="del" 监听子组件的delete事件-->
   </ul>
</div>
<script>
   Vue.component("todo-item",{
     props: ['content',"index"],
     template:"<li @click='handcilck'>{{content}}</li>",
methods:{
    handcilck:function(){
  this.$emit('delete',this.index)//向外触发一个delete事件
}
}
   })
   
   new Vue({
    el:"#root",
data:{
  text:"",
  list:[]
  },
methods:{
   add:function(){
   this.list.push(this.text);
   this.text = "";
   },
   del:function(index){
     alert(index);
   }
}
});
</script>
</body>
</html>

以上是 Vue组件 的全部内容, 来源链接: utcz.com/z/375713.html

回到顶部