文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何从面向对象思维理解Vue组件

2024-04-02 19:55

关注

这篇文章主要讲解了“如何从面向对象思维理解Vue组件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何从面向对象思维理解Vue组件”吧!

什么是组件

用面向对象的思维去理解Vue组件,可以将所有的事物都抽象为对象,而类或者说是组件,都具有属性和操作。

如抽取人类为组件,其基本的属性有姓名、年龄、国籍;基本的方法有吃饭、睡觉、跑步等。

<script>
export default {
    name: "person",
    props: {
        name: {
            type: String,
            required: false,
            default: "无名氏"
        },
        age: {
            type: Number,
            required: false,
            default: 0
        },
        country: {
            type: String,
            required: false,
            default: "地球人"
        }
    },
    methods: {
        eat() {
            consloe.log("吃饭")
        },
        sleep() {
            consloe.log("睡觉")
        },
        run() {
            consloe.log("跑步")
        }
    }
}
</script>

在面向对象中,构造函数可以为类初始化全局变量,所以这种方式同样可以用在组件中

<person :age="20" :name=""小明"" :country=""中国人""></person>

组件封装了数据以及操作,有进则有出,我们不用关心组件内发生了什么,我们只需要结果和呈现出来的效果如何。

自定义事件

外界不可以直接访问使用或访问组件的属性,该如何做?

使用$emit自定义事件,可以实现外界获取组件属性。

<template>
    ...
    <button @click="handleClick">点击</button>
</template>

<script>
export default {
    name: "person",
    methods: {
        handleClick() {
            this.$emit("getPerson", {
                age: this.age,
                name: this.name,
                country: this.country
            })
        }
    }
}
</script>

外界调用组件时添加自定义函数@getPersonv-on:click="getPerson"

<template>
    <div>
        <person :age="20" :name=""小明"" :country=""中国人"" @getPerson="getPerson"></person>
    </div>
</template>

<script>
export default {
    name: "test",
    methods: {
        getPerson(info) {
            consloe.log(info)
        }
    }
}
</script>

实际案例

如何从面向对象思维理解Vue组件

在网页开发中,你可能会用到标签,而你可能会想到标签不可能在一个页面使用一次,可能是多次使用到。你还可能会想到因为不同的情况而自定义一些宽度、高度和颜色。

所以可以将标签相关的HTML代码和CSS封装到组件中,对外,我们暴露width、height和type参数。在使用时,因为不同的情况而需要自定义,那么传递参数即可。

<template>
    <view
        :style="{ width: width, height: height }"
        :class="["owl-tag-" + type]"
        class="owl-tag text-xs flex align-center justify-center"
    >
        <slot></slot>
    </view>
</template>

<script>
    name: "owl-tag",
    props: {
        // 可传入有效值为 primary | gray
        type: {
            type: String,
            default: "primary"
        },
        width: {
            type: String,
            required: false
        },
        height: {
            type: String,
            required: false
        }
    }
</script>

<style>
.owl-tag {
    border-radius: 8rpx;
    padding: 6rpx 10rpx;
}

.owl-tag-primary {
    color: white;
    background-color: #87cefa;
}

.owl-tag-gray {
    color: #81868a;
    background-color: #f0f1f5;
}
</style>

这些工作做好了,一个组件就被我们定义好了。想用就调用,想改就传参,这就是组件的好处。

<template>
    <owl-tag
        :type=""primary""
        :height=""45rpx""
        :width=""120rpx""
    >
        官方帖
    </owl-tag>
</template>

改变type的值为gray,呈现的效果如下:

如何从面向对象思维理解Vue组件

感谢各位的阅读,以上就是“如何从面向对象思维理解Vue组件”的内容了,经过本文的学习后,相信大家对如何从面向对象思维理解Vue组件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯