欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  一、什么是组件?
 
  组件(Component)是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js的编译器为它添加特殊功能。在有些情况下,组件也可以表现为用is特性进行了扩展的原生HTML元素。
 
  总结:
 
  组件是用来完成特定功能的一个自定义的HTML标签
 
  例如:
 
  <body>
 
  <mytag></mytag>
 
  </body>
 
  注意:mytag就是一个组件,该组件必须通过Vue为mytag赋予一定的功能
 
  二、组件的作用
 
  组件是对特点功能代码(html,css,js)的封装,通过组件的名字可以重复利用该组件中的代码.
 
  组件分类:
 
  全局组件和局部组件
 
  注意:组件的template模板必须有且只有一个根标签(所有内容必须由一个标签套起来)。
 
  三、全局组件
 
  1.全局组件的语法:
 
  Vue.component("自定义标签的名字",{配置对象})
 
  2.全局组件的特点:
 
  2.1全局组件可以在任何被挂着的标签中使用.
 
  2.2全局组件的配置对象中必须包含template属
 
  3.全局组件应用场景
 
  如果该组件的特定功能需要在任何被Vue实例挂载的标签中使用.推荐使用全局组件
 
  <!DOCTYPEhtml>
 
  <html>
 
  <head>
 
  <metacharset="utf-8"/>
 
  <title></title>
 
  </head>
 
  <body>
 
  <divid="app">
 
  <!--引用全局组件:方式一-->
 
  <compon1></compon1>
 
  </div>
 
  <divid="app2">
 
  <!--引用全局组件:方式二-->
 
  <compon2></compon2>
 
  </div>
 
  <divid="app3">
 
  <!--引用全局组件:方式三-->
 
  <compon3></compon3>
 
  </div>
 
  <!--==============================定义组件模板====================================-->
 
  <!--方式二:定义模板(注意:如果使用script标签,建议加上type="text/template")-->
 
  <scripttype="text/template"id="compon2">
 
  <!--这个div是根标签-->
 
  <div>
 
  <h1>我是网页</h1>
 
  <div>
 
  天天向阳,自强不息
 
  </div>
 
  </div>
 
  </script>
 
  <!--方式三:定义模板(建议使用)-->
 
  <templateid="temp">
 
  <!--这个div是根标签-->
 
  <div>
 
  <h1>我是网页2</h1>
 
  <div>
 
  上天入地
 
  </div>
 
  </div>
 
  </template>
 
  <!--开发版本:vue.js(vue.js代码网址:https://cn.vuejs.org/v2/guide/installation.html)-->
 
  <scripttype="text/javascript"src="js/vue.js"></script>
 
  <script>
 
  /*=======================定义全局组件===================================*/
 
  //定义全局组件(方式一)
 
  Vue.component("compon1",{
 
  template:"<h1>快过来啊</h1>"
 
  })
 
  //定义全局组件(方式二)
 
  Vue.component("compon2",{
 
  template:"#compon2"
 
  })
 
  //定义全局组件(方式三)
 
  Vue.component("compon3",{
 
  template:"#temp"
 
  })
 
  /*=======================定义vue实例===================================*/
 
  //挂载vue实例(方式一)
 
  varapp=newVue({
 
  el:"#app",
 
  })
 
  //挂载vue实例(方式二)
 
  varapp2=newVue({
 
  el:"#app2",
 
  })
 
  //挂载vue实例(方式三)
 
  varapp3=newVue({
 
  el:"#app3",
 
  })
 
  </script>
 
  </body>
 
  </html>
 
  四、局部组件-是定义在某个vue实例上的
 
  1.局部语法:
 
  varapp=newVue({
 
  el:"#app",
 
  data:{},
 
  components:{
 
  "局部组件的名字1":{组件的配置对象}
 
  "局部组件的名字2":{组件的配置对象}
 
  }
 
  });
 
  2.局部组件的特点
 
  局部组件只能够在所挂载的标签中使用.
 
  <!DOCTYPEhtml>
 
  <html>
 
  <head>
 
  <metacharset="utf-8"/>
 
  <title></title>
 
  </head>
 
  <body>
 
  <divid="app">
 
  <!--引用局部组件:方式一-->
 
  <compon1></compon1>
 
  <hr/>
 
  <!--引用局部组件:方式二-->
 
  <compon2></compon2>
 
  <hr/>
 
  <!--引用局部组件:方式三-->
 
  <compon3></compon3>
 
  </div>
 
  <!--==============================定义组件模板====================================-->
 
  <!--方式二:定义模板(注意:如果使用script标签,建议加上type="text/template")-->
 
  <scripttype="text/template"id="compon2">
 
  <!--这个div是根标签-->
 
  <div>
 
  <h1>我是网页</h1>
 
  <div>
 
  天天向阳,自强不息
 
  </div>
 
  </div>
 
  </script>
 
  <!--方式三:定义模板(建议使用)-->
 
  <templateid="temp">
 
  <!--这个div是根标签-->
 
  <div>
 
  <h1>我是网页2</h1>
 
  <div>
 
  上天入地
 
  </div>
 
  </div>
 
  </template>
 
  <!--开发版本:vue.js(vue.js代码网址:https://cn.vuejs.org/v2/guide/installation.html)-->
 
  <scripttype="text/javascript"src="js/vue.js"></script>
 
  <script>
 
  /*=======================定义vue实例===================================*/
 
  //挂载vue实例(方式一)
 
  varapp=newVue({
 
  el:"#app",
 
  components:{
 
  //定义局部组件(方式一)
 
  "compon1":{
 
  template:"<h1>快过来啊</h1>"
 
  },
 
  //定义局部组件(方式二)
 
  "compon2":{
 
  template:"#compon2"
 
  },
 
  //定义局部组件(方式三)
 
  "compon3":{
 
  template:"#temp"
 
  },
 
  }
 
  })
 
  </script>
 
  </body>
 
  </html>
 
  五、组件中的数据必须是函数
 
  1.组件中数据的定义
 
  语法:
 
  "组件的名字":{
 
  template:"",
 
  data:function(){
 
  return{
 
  键1:值1,
 
  键2:值2
 
  }
 
  }
 
  }
 
  2.注意事项:
 
  1、data数据只能够以函数的形式返回,因为函数中可以写其他的业务代码。
 
  2、只能够在各自的组件模板中使用各自的组件中的data数据。
 
  3、Vue对象中的数据不能够在组件中使用,组件的数据也不能够在挂载的html标签上使用。
 
  <!DOCTYPEhtml>
 
  <html>
 
  <head>
 
  <metacharset="utf-8"/>
 
  <title></title>
 
  </head>
 
  <body>
 
  <divid="app">
 
  <!--这里引用的message是vue实例里的data数据-->
 
  {{message}}
 
  <!--引用全局组件-->
 
  <compon1></compon1>
 
  </div>
 
  <!--==============================定义组件模板====================================-->
 
  <!--定义模板(建议使用)-->
 
  <templateid="temp">
 
  <!--这个div是根标签-->
 
  <div>
 
  <h1>我是网页2</h1>
 
  <div>
 
  <!--只能够在各自的组件模板中使用各自的组件中的data数据-->
 
  上天入地{{message}}
 
  </div>
 
  </div>
 
  </template>
 
  <!--开发版本:vue.js(vue.js代码网址:https://cn.vuejs.org/v2/guide/installation.html)-->
 
  <scripttype="text/javascript"src="js/vue.js"></script>
 
  <script>
 
  /*=======================定义vue实例===================================*/
 
  //挂载vue实例(方式一)
 
  varapp=newVue({
 
  el:"#app",
 
  data:{
 
  message:"哈哈哈哈啊哈!"
 
  },
 
  components:{
 
  //定义局部组件(方式一)
 
  "compon1":{
 
  template:"#temp",
 
  data:function(){
 
  return{
 
  message:"武二郎先生"
 
  }
 
  }
 
  }
 
  }
 
  })
 
  </script>
 
  </body>
 
  </html>
 
  

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h56369.shtml