Vue组件化开发

Vue精髓–组件化


1.组件化理解:把前端页面大体分为几个部分,每部分为一个组件,组件可以单独写出来,然后每个页面去调用。对应后端开发的“类”思想,使用的时候去调用传参即可.
2.组件化举例:

(1)创建组件:
在vue项目中,组件一般放在src的components文件夹下,如下:
在这里插入图片描述
组件中封装公共代码,把需要传的值放在props数组里边,如下为adapt.js组件内容

<template>
    <div class='adapt'>
        <h3>适应场景</h3>
         <el-tabs  @tab-click="handleClick">
            <el-tab-pane v-for="item in adaptlist" :key='item.index' :label='item.name'>
                <div class='game'>
                    <div class='pho'>
                      <img class="topImg" :src="item.src1"  alt="" />
                    </div>
                    <div class='mes'>
                       <ul>
                        <li class='mesul'>
                          <img :src="item.src2">
                          <div class='mes1'>
                            <h4>{{item.title1}}</h4>
                            <p>{{item.mes1}}</p>
                          </div>
                          <div class='clear'></div>
                          </li>
                        <li class='mesul1'>
                          <img :src="item.src3">
                          <div class='mes11'>
                            <h4>{{item.title2}}</h4>
                            <p>{{item.mes2}}</p>
                          </div>
                          <div class='clear'></div>
                        </li>
                      </ul>
                    </div>
                    <div class='clear'></div>
                </div>
            </el-tab-pane>
        </el-tabs>
    </div>
</template>

<script>
export default ({
    name: 'adapt',
    data() {
    return {
    };
  },
     props: ['adaptlist'],
     methods: {
      handleClick(tab, event) {
        console.log(tab, event);
      }
  },
    mounted() {
    var wow = new WOW({
      boxClass: 'wow',
      animateClass: 'animated',
      offset: 0,
      mobile: true,
      live: true
    })
    wow.init();
  }
})
</script>

需要传递的参数为:activeName, adaptlist
把这两个参数放在props里边(此处为vue的传值方式之一):

 props: [ 'adaptlist'],

(2)注册组件

在main.js中注册(也可以局部注册,使用时在需要引用的页面注册)

/* 适用场景 */
import adapt from './components/adapt'
Vue.component(adapt.name, adapt)

此时adapt.name为adapt组件中name参数值,如下所示:
a

(3)组件引用及传值

1)全局注册时,直接在需要加入组件的页面引入组件即可,如下在此页面引入adapt组件:

在这里插入图片描述
需要传递的值直接用以下方式传递:

:adaptlist = 'adaptlist'

此时"="前的adaptlist表示传递参数名,即在adapt.js页面中props里边的参数值,
“=”后的adaptlist为引用adapt页面里需要传递的值,在此页面的data或methods中赋值即可,如下所示。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值