您的位置:

uniapp组件全方位剖析

一、uniapp组件库

uniapp是一个同时支持多个平台的开发框架,由于其极大的便捷性和高效性,越来越多的开发者使用它开发多端应用。而为了更好地开发应用,uniapp提供了常用的、丰富的组件库,让开发者可以直接使用。

uniapp组件库的主要有两种类型:官方组件库和第三方组件库。官方组件库是uniapp开发团队维护的,包含了一些常见、实用的组件,比如按钮、输入框、列表、滑动框等。第三方组件库则是开发者们自主开发的,这些组件库包含了更多的自定义组件,比如地图组件、表格组件等。

在开发过程中,我们可以根据自己的需求去选取合适的组件,以达到更好的开发效果。

二、uniapp用什么组件库

在uniapp开发中,如果只是一些简单的界面组件,我们可以使用官方组件库。但是如果我们需要一些自定义的组件,那么我们需要借助第三方组件库。

目前市面上比较流行的uniapp第三方组件库有三种:vant、color-ui和cube-ui。这些组件库都有其优点和缺点,我们需要针对具体的场景进行选择。

比如vant组件库适用于移动端开发,支持多种主题样式,自定义性强,可扩展性好。而color-ui组件库则适合小程序和H5开发,轻量级,有着简洁的设计和良好的兼容性。cube-ui组件库则适用于大型应用开发,组件之间耦合度低,易于维护。

三、uniapp组件传递

在uniapp中,我们可以使用props属性来进行组件传递。props是组件的一个属性,用于接受外部传递的数据。通过这种方式,我们可以将父组件中的数据传递给子组件,实现数据的共享。

具体实现方式如下:

{
    // 父组件中
    <template>
        <child :message="msg"></child>
    </template>
    data(){
        return {
            msg: 'hello world'
        }
    }
}
{
    // 子组件中
    <template>
        <div>{{ message }}</div>
    </template>
    props: {
        message: String
    }
}

四、uniapp组件跳转

在uniapp中,跳转页面有两种方式:navigateTo和switchTab。navigateTo用于跳转到非tabBar的页面,switchTab用于跳转到tabBar页面。我们还可以使用组件传值的方式,在新页面中获取上个页面传递的数据。

具体实现方式如下:

{
    // 跳转前的页面
    <template>
        <button @click="jumpToPage">跳转到新页面</button>
    </template>
    methods: {
        jumpToPage() {
            uni.navigateTo({
                url: 'newPage?id=1&name=Hello World'
            });
        }
    }
}
{
    // 新开启的页面
    <template>
        <div>ID:{{ id }}</div>
        <div>NAME:{{ name }}</div>
    </template>
    onLoad(options) {
        console.log(options)
        // 输出 {id: 1, name: "Hello World"}
        this.id = options.id;
        this.name = options.name;
    }
}

五、uniapp组件封装

在uniapp开发中,我们常常需要封装一些常用的组件,以便于重复使用。下面是一个简单的组件封装示例:

{
    // 封装的组件
    <template>
        <div class="list">
            <div class="list-item" v-for="(item, index) in list" :key="index">
                {{ item }}
            </div>
        </div>
    </template>
    props: {
        list: {
            type: Array,
            default: () => []
        }
    }
}
{
    // 使用封装的组件
    <template>
        <list-component :list="list"></list-component>
    </template>
    import listComponent from '@/components/listComponent.vue';
    export default {
        components: { listComponent },
        data(){
            return {
                list: ['item1', 'item2', 'item3']
            }
        }
    }

六、uniapp组件show

在uniapp中,我们可以通过v-show和v-if指令来控制组件的显示与隐藏。其中v-show的方式是通过修改其CSS样式display属性来实现的,而v-if则是将该组件从DOM树中移除。

具体实现方式如下:

{
    // v-show的使用方法
    <template>
        <div v-show="isShow">hello world</div>
    </template>
    data() {
        return {
            isShow: true
        };
    }
}
{
    // v-if的使用方法
    <template>
        <div v-if="isShow">hello world</div>
    </template>
    data() {
        return {
            isShow: true
        };
    }
}

七、uniapp组件传值

在uniapp组件间传值时,有两种方式:props和事件传递。props是通过属性传递的方式,而事件传递则是通过触发事件来传递数据。

具体实现方式如下:

{
    // props传递数据
    <template>
        <div>{{ message }}</div>
    </template>
    props: {
        message: String,
    }
}
{
    // 事件传递数据
    <template>
        <button @click="passData">传递数据</button>
    </template>
    methods: {
        passData() {
            this.$emit('message', 'hello world');
        }
    }
}
{
    // 接收数据
    <template>
        <child-component @message="getMessage"></child-component>
    </template>
    methods: {
        getMessage(msg) {
            console.log(msg);
            // 输出 hello world
        }
    }
}

八、uniapp组件生命周期

组件生命周期是指组件从创建到销毁的整个过程。在uniapp中,组件生命周期可分为多个阶段执行,每个阶段都有着相应的生命周期函数,开发者可以在这些函数中对组件进行操作。

组件的生命周期分为8个阶段,分别是:created、beforeMount、mounted、beforeUpdate、updated、activated、deactivated、beforeDestroy、destroyed。

{
    // 生命周期回调函数
    <template>
        <div>hello world</div>
    </template>
    methods: {
        created() {
            console.log('created')
        },
        beforeMount() {
            console.log('beforeMount')
        },
        mounted() {
            console.log('mounted')
        },
        beforeUpdate() {
            console.log('beforeUpdate')
        },
        updated() {
            console.log('updated')
        },
        activated() {
            console.log('activated')
        },
        deactivated() {
            console.log('deactivated')
        },
        beforeDestroy() {
            console.log('beforeDestroy')
        },
        destroyed() {
            console.log('destroyed')
        }
    }
}

九、uniapp组件库有哪些

uniapp提供了丰富的组件库,这些组件库包含了开发常用的、实用的组件。以下是uniapp组件库部分展示:

  • 基础组件: 包括按钮、输入框、图标等常用组件
  • 布局组件: 包括栅格系统、面板、滑动框等组件
  • 导航组件: 包括标签页、导航栏、侧边栏等常用导航组件
  • 操作反馈组件: 包括弹出框、消息提示、加载中等反馈组件
  • 表单组件: 包括表单、时间选择器、地区选择器等常用组件
  • 业务组件: 包括日历、地图、分享等业务相关组件

以上是uniapp组件库的一部分,开发者们可以根据自身需求进行选取使用。