uniapp 组件

作者admin

1月 13, 2023

组件基础部分

组件是什么?

组件是视图层的基本组成单元。它是一个单独且可复用的功能模块的封装。

组件的组成

以组件名称为标记的开始标签和结束标签、组件内容、组件属性、组件属性值。

注意:所有组件与属性名都是小写,单词之间以连字符-连接。

<component-name property1=”value” property2=”value”>
content
</component-name>

组件的公共属性

属性名 类型 描述 注解
id String 组件的唯一标示 一般用于获取组件上下文对象(如:VideoContext),需要保持整个页面唯一
ref String vue中组件的唯一标示 用来给子组件注册引用信息,详见 Vue 文档
class String 组件的样式类 在对应的 css 中定义的样式类
style String 组件的内联样式 可以动态设置的内联样式
hidden Boolean 组件是否隐藏 所有组件默认是显示的
data-* Any 自定义属性 组件上触发的事件时,会发送给事件处理函数
@* EventHandler 组件的事件 详见各组件详细文档,事件绑定参考 事件处理器

除了上述公共属性,还有一类特殊属性以v-开头,称之为vue指令,如v-if、v-else、v-for、v-model。详见vue指令

组件的事件

@为前缀,指向在script的methods里定义过的js方法,还可以给方法传参数。

<template>
	<view>
		<button size="mini" @click="goto('/pages/about/about')">按钮</button>
	</view>
</template>
<script>
    export default {
        methods: {
            goto(url) {
                console.log("按钮被点击了,且传入的参数是:" + url)
            }
        }
    }
</script>

//click是button组件的点击事件,在用户点击这个button时触发

Vue2组件部分

定义规范:

  • 根节点为 <template>,这个 <template> 下只能且必须有一个根 <view> 组件。
  • 一个组件的 data 选项必须是一个函数。

组件注册方式

1、全局注册

1.main.js 里进行全局导入和注册

import Vue from 'vue'
import pageHead from './components/page-head.vue'
Vue.component('page-head',pageHead)

2.index.vue 里可直接使用组件

<template>
		<view>
			<page-head></page-head>
		</view>
</template>

2、局部注册

1.传统vue规范

	<!-- 在index.vue引入 uni-badge 组件-->
	<template>
		<view>
			<uni-badge text="1"></uni-badge><!-- 3.使用组件 -->
		</view>
	</template>
	<script>
                //1.导入组件(这步属于传统vue规范,但在uni-app的easycom下可以省略这步)
		import uniBadge from '@/components/uni-badge/uni-badge.vue';
		export default {
                //2.注册组件(这步属于传统vue规范,但在uni-app的easycom下可以省略这步)
			components:{uniBadge }
		}
	</script>

单项数据流

所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外变更父级组件的状态,从而导致你的应用的数据流向难以理解。

自定义事件

.native 修饰符

.sync 修饰符

作者 admin

百度广告效果展示