zoukankan      html  css  js  c++  java
  • Vue 什么是组件

    Vue.js组件
      组件的作用:组件是自定义元素,可扩展html元素,封装可复用的代码。
      组件的注册一定要在初始化根实例之前,负责组件是不起作用的。
      全局组件在初始化实例的时候被使用
      局部组件仅在实例/组件作用域中可用

    1、组件的注册

      

     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4         <meta charset="UTF-8">
     5          <title></title>
     6          <script type="text/javascript"  src="vue.js"></script>
     7      </head>
     8  <body>
     9      <div id="id">
    10         <global></global>
    11         <father></father>
    12      </div>
    13  </body>
    14  <script>
    15        Vue.component('global',{
    16            template: '<div>注册全局组件</div>'
    17        })
    18 
    19        var partial = { //局部组件仅在一个实例/组件的作用域中可用
    20            template: '<div>注册局部组件</div>'
    21        }
    22 
    23        new Vue({
    24            el: '#id',
    25            components:{
    26                'father':partial
    27            }
    28        })
    29      </script>
    30  </html>

    2、DOM模板解释说明

    当使用 DOM 作为模版时(例如,将 el 选项挂载到一个已存在的元素上), 你会受到 HTML 的一些限制,因为 Vue 只有在浏览器解析和标准化 HTML 后才能获取模版内容。尤其像这些元素 <ul> ,<ol><table> ,<select> 限制了能被它包裹的元素, 而一些像 <option> 这样的元素只能出现在某些其它元素内部。

    这时需要用到特殊的is属性

    <table>
      <my-row>...</my-row>
    </table>
    <!--上面的组件是无效的-->
    
    
    <table>
      <tr is="my-row"></tr>
    </table>
    <!--上面的组件使用is属性才能被解析->

    3、通过Vue构造器传入的各种选项大多数都可以在组件里用。 data 是一个例外,它必须是函数。

     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4         <meta charset="UTF-8">
     5          <title></title>
     6          <script type="text/javascript"  src="vue.js"></script>
     7      </head>
     8  <body>
     9      <div id="id">
    10          <simple-counter></simple-counter>
    11          <simple-counter></simple-counter>
    12          <simple-counter></simple-counter>
    13      </div>
    14  </body>
    15  <script>
    16      var data = { counter: 0 }
    17      Vue.component('simple-counter', {
    18          template: '<button v-on:click="counter += 1">{{ counter }}</button>',
    19          // 技术上 data 的确是一个函数了,因此 Vue 不会警告,
    20          data: function () {
    21              //所有组件都是返回同意个对象
    22            //  return data
    23              //为每个组件返回全新的对象
    24              return{
    25                  counter:0
    26              }
    27          }
    28      })
    29 
    30        new Vue({
    31            el: '#id'
    32        })
    33      </script>
    34  </html>
  • 相关阅读:
    bzoj 1086 [SCOI2005]王室联邦——思路
    bzoj 3809 Gty的二逼妹子序列——莫队+分块
    bzoj 3781 小B的询问——分块
    bzoj 3309 DZY Loves Math——反演+线性筛
    洛谷 1079 Vigenère 密码——模拟水题
    洛谷 1082 同余方程——exgcd(水题)
    bzoj2662 [BeiJing wc2012]冻结 ——分层图
    bzoj2242 [SDOI2011]计算器——BSGS
    bzoj1008 [HNOI2008]越狱——快速幂
    bzoj1607 [Usaco2008 Dec]Patting Heads 轻拍牛头——暴力
  • 原文地址:https://www.cnblogs.com/dyfbk/p/6871974.html
Copyright © 2011-2022 走看看