美文网首页Vue.js前端Vue专辑
vue之自定义组件的写法与用法

vue之自定义组件的写法与用法

作者: 贤总_ | 来源:发表于2019-05-13 18:07 被阅读3次

三个技能,父组件 —> 子组件传值(props)、子组件 —> 父组件传值(emit)、以及插槽(slot);对于一个独立的组件来说,props是用来为组件内部注入核心的内容;emit用来使这个独立的组件通过一些逻辑来融入其他组件中。举个具体点的例子,假如你要做一辆车,车轮是要封装的一个独立组件,props指的就是根据整个车的外形你可以给轮子设置一些你想要的且符合车风格的花纹,图案等;而$emit的作用则是让这些轮子能够和整辆车完美契合的运作起来。

(1)使用props可以实现父子组件之间的传值
(2)使用this.$emit()可是实现子组件调用父组件的方法

一.在commponents文件创建组件文件
二.组件代码(写法)

index.vue

<template>
    <div class="cusdealed">
        <div class="submited" v-if="showStatus==1">
            <div class="submitRes">
                <img class="resImg" src="../../common/img/repectSubmit.png" alt="">
            </div>
            <div class="submitTip tipwidth">该单据已经提交过了,不用重复提交哦!</div>
        </div>

         <div class="submited" v-if="showStatus==2">
            <div class="submitRes">
                <img class="resImg" src="../../common/img/invalid.png" alt="">
            </div>
            <div class="submitTip">单据已失效,不能扫单入库!</div>
        </div>

        <div class="submited" v-if="showStatus==3">
            <div class="submitRes">
                <img class="resImg" src="../../common/img/invalid.png" alt="">
            </div>
            <div class="submitTip">找不到该单据,不能扫单入库!</div>
        </div>
        
    </div>
</template>
<script type="text/javascript" src="./logic.js"></script>
<style lang="less" scoped>
    @import './style.css';
</style>

style.less

//样式文件
@import '../../common/less/px2rem.less';
@import '../../common/less/base.less';

.cusdealed {
  .submited {
    .submitRes {
      .px2rem(150);
      width: @px2rem;
      height: @px2rem;
    }

    .submitRes {
      .px2rem(227);
      margin: @px2rem auto 0;

      .resImg {
        width: 100%;
        height: 100%;
        display: block;
      }
    }

    .submitTip {
    .px2rem(58);
    //   height: @px2rem;
      font-family: PingFangSC-Regular;
      font-weight: 400;
      color: rgba(51, 51, 51, 1);
      line-height: @px2rem;
    }
    .submitTip{
        .px2rem(32);
        font-size: @px2rem;
    }
    .tipwidth{
        .px2rem(384);
        width: @px2rem;
    }
    .submitTip{
        .px2rem(50);
        margin: @px2rem auto 0;
    }
  }
}

logic.js

//逻辑文件
import { Spinner } from 'vux'

export default {
    name: 'cusDealing',
    data() {
        return {
          showStatus:1
        }
    },
    components: {
        Spinner,
    },
    props: {
        // showStatus: Number
      },
      computed: {
    
      },
      watch: {
        showStatus(val) {
          console.log(val, 'showStatus---')
          return val;
        }
      },
    methods: {
       
    },
    mounted() {
     
    }
}

三.用法

引入组件




页面使用
html:

  <!-- 处理完弹窗 -->
    <div class="dealed" :style="'padding-top:'+marginTop+'px;height:'+bodyheight+'px;'" v-if="dealStatus==2">
        <div class="dealedContent">
            <Cusdealed :showStatus="showStatus"></Cusdealed>
            <div class="Iknow" @click="Iknow">我知道了</div>
        </div>
    </div>

js:




效果


相关文章

  • vue之自定义组件的写法与用法

    三个技能,父组件 —> 子组件传值(props)、子组件 —> 父组件传值(emit用来使这个独立的组件通过一些逻...

  • uniApp自定义组件

    自定义组件代码 语法,传参,事件跟VUE一致 ,请参数vue的写法

  • 《Vue.js 实战》基础篇(下)

    本章内容:表单 与 v-model、组件、自定义指令 六、表单 与 v-model 6.1、基本用法 Vue.js...

  • 2019-05-15 antd-designed-vue

    antd-designed-vue layout 基础用法 class 组件的类名 style 组件自定义样式 h...

  • vue 面包屑

    vue-router自定义一个meta:{title:‘’} (******vue2写法) 面包屑组件贴代码! 其...

  • vue文档阅读笔记2017年10月16日 15:09:34

    1、vue与自定义元素的关系 Vue 组件非常类似于 Web 组件规范中的自定义元素(Custom Element...

  • Vue组件

    Vue 组件的基本写法 一、其实Vue组件和Vue的界面写法很基本一样,主要区别在于子组件和父组件之间的通信问题,...

  • 自定义元素

    参考来自HTML自定义元素更多用法请参考谷歌的官方教程 Vue和自定义元素之间的关系你可能已经注意到 Vue 组件...

  • .native是干嘛的?

    正常写法: card.vue里 .native写法: card.vue 父组件里:

  • vue(2)

    Vue组件化开发 组件化开发的思想 组件的注册 组件间的数据交互 组件插槽的用法 Vue调试工具的用法 组件开发思...

网友评论

    本文标题:vue之自定义组件的写法与用法

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