美文网首页
vue中使用组件的入门心得

vue中使用组件的入门心得

作者: 菜的只能打代码 | 来源:发表于2020-11-04 16:38 被阅读0次

组件关键词:component  components

原生的html:

<div id="app">

    <div class="container">

      <div class="cart">

        <div class="title">我的商品</div>

        <div>

          <div class="item">

            <img src="img/a.jpg"/>

            <div class="name"></div>

            <div class="change">

              <a href="">-</a>

              <input type="text" class="num" />

              <a href="">+</a>

            </div>

            <div class="del">×</div>

          </div>

          <div class="item">

            <img src="img/b.jpg"/>

            <div class="name"></div>

            <div class="change">

              <a href="">-</a>

              <input type="text" class="num" />

              <a href="">+</a>

            </div>

            <div class="del">×</div>

          </div>

          <div class="item">

            <img src="img/c.jpg"/>

            <div class="name"></div>

            <div class="change">

              <a href="">-</a>

              <input type="text" class="num" />

              <a href="">+</a>

            </div>

            <div class="del">×</div>

          </div>

          <div class="item">

            <img src="img/d.jpg"/>

            <div class="name"></div>

            <div class="change">

              <a href="">-</a>

              <input type="text" class="num" />

              <a href="">+</a>

            </div>

            <div class="del">×</div>

          </div>

          <div class="item">

            <img src="img/e.jpg"/>

            <div class="name"></div>

            <div class="change">

              <a href="">-</a>

              <input type="text" class="num" />

              <a href="">+</a>

            </div>

            <div class="del">×</div>

          </div>

        </div>

        <div class="total">

          <span>总价:123</span>

          <button>结算</button>

        </div>

      </div>

    </div>

./---------------------------创建全局组件的方式(将各局部组件拼凑在一起)--------------------------------/

Vue.component(‘my-cart’,{

    template:`

        <div class="cart">

        <cart-title :uname='uname'> </cart-title>

        <cart-list> </cart-list>

        <cart-total> </cart-total>

        </div>

        `,

        components:{

            'cart-title':CartTitle,

            'cart-list':CartList,

            'cart-total':CartTotal

        },

})

./---------------------------创建局部组件的方式--------------------------------/

var CartTitle={

 props:['uname'],

    template:`

    <div class="title">{{uname}}</div>

    `

}

var CartList={

    template:`

    <div>

    <div class="item" :key='index' v-for="(item,index) in list">

            <img :src="item.img"/>

            <div class="name">{{item.name}}</div>

            <div class="change">

              <a href=""  @click.prevent='sub(item.id,$event)'>-</a>

              <input type="text"  :value="item.num"   class="num" @blur="changeNum(item.id,$event)" />

              <a href=""  @click.prevent='add(item.id,$event)'>+</a>

            </div>

            <div class="del" @click.prevent='del(item.id)'>×</div>  

    </div>

      </div>

    `,

}

var CartTotal={ 

    props:['list'],

    template:`

    <div class="total">

          <span>总价:{{total}}</span>

          <button>结算</button>

     </div>

    `,

}  </div>

./---------------------------样式--------------------------------/

 <style type="text/css">

    .container {

    }

    .container .cart {

      width: 300px;

      /*background-color: lightgreen;*/

      margin: auto;

    }

    .container .title {

      background-color: lightblue;

      height: 40px;

      line-height: 40px;

      text-align: center;

      /*color: #fff;*/  

    }

    .container .total {

      background-color: #FFCE46;

      height: 50px;

      line-height: 50px;

      text-align: right;

    }

    .container .total button {

      margin: 0 10px;

      background-color: #DC4C40;

      height: 35px;

      width: 80px;

      border: 0;

    }

    .container .total span {

      color: red;

      font-weight: bold;

    }

    .container .item {

      height: 55px;

      line-height: 55px;

      position: relative;

      border-top: 1px solid #ADD8E6;

    }

    .container .item img {

      width: 45px;

      height: 45px;

      margin: 5px;

    }

    .container .item .name {

      position: absolute;

      width: 90px;

      top: 0;left: 55px;

      font-size: 16px;

    }

    .container .item .change {

      width: 100px;

      position: absolute;

      top: 0;

      right: 50px;

    }

    .container .item .change a {

      font-size: 20px;

      width: 30px;

      text-decoration:none;

      background-color: lightgray;

      vertical-align: middle;

    }

    .container .item .change .num {

      width: 40px;

      height: 25px;

    }

    .container .item .del {

      position: absolute;

      top: 0;

      right: 0px;

      width: 40px;

      text-align: center;

      font-size: 40px;

      cursor: pointer;

      color: red;

    }

    .container .item .del:hover {

      background-color: orange;

    }

  </style>

相关文章

网友评论

      本文标题:vue中使用组件的入门心得

      本文链接:https://www.haomeiwen.com/subject/wzcavktx.html