UniAPP笔记(四)

167 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情

前言

大家好呀,我是L同学。在上篇文章UniAPP笔记(三)中,我们学习了UniAPP的相关知识点,包括路由配置、路由跳转、获取当前页面栈、路由传参与接收、小程序路由分包配置、UniAPP 常用组件等相关知识点。在本篇文章中,我们将继续学习UniAPP的相关知识点,包括UniAPP 常用 API 简介、自定义组件、父子组件通信、slot 数据分发与作用域插槽、全局事件定义及通信等相关知识点。

UniAPP 常用 API 简介

uni-app的 js 代码,h5 端运行于浏览器中,非 h5 端 Android 平台运行在 v8 引擎中,iOS 平台运行在 iOS 自带的 jscore 引擎中。所以,uni-app的 jsAPI 由标准 ECMAScript 的 js API 和 uni 扩展 API 这两部分组成。

ECMAScript 由 Ecma 国际管理,是基础 js 语法。浏览器基于标准 js 扩充了window、document 等 js API;Node.js 基于标准 js 扩充了 fs 等模块;小程序也基于标准 js 扩展了各种 wx.xx、my.xx、swan.xx 的 API。标准 ecmascript 的 API 非常多,比如:console、settimeout等等。非 H5 端,虽然不支持 window、document、navigator 等浏览器的 js API,但也支持标准 ECMAScript。所以 uni-app 的非 H5 端,一样支持标准 js,支持 if、for 等语法,支持字符串、数组、时间等变量及各种处理方法,仅仅是不支持浏览器专用对象。

自定义组件

组件是 vue 技术中非常重要的部分,组件使得与ui相关的轮子可以方便的制造和共享,进而使得vue使用者的开发效率大幅提升,在项目的component目录下存放组件,uni-app 只支持 vue 单文件组件(.vue 组件)。

组件可以使用「全局注册」和「页面引入」两种方式进行使用,使用分为三步:

  1. 导入 import xxx from 'xxx'
  2. 注册 Vue.use('xx',xx) components:{ xxx }
  3. 使用 <xx />

父子组件通信

父组件通过自定义属性向子组件传递数据。子组件通过 props 接收父组件传递的数据。父组件通过自定义事件标签向子组件传递事件。子组件通过触发父组件定义事件方式修改父组件数据。

slot 数据分发与作用域插槽

父组件通过调用子组件内部嵌套 html 内容作为slot分发给子组件。子组件通过在 slot 标签上添加属性,向父组件通信数据,作用域插槽

全局事件定义及通信

在整个应用的任何地方均可以使用uni.$on创建一个全局事件。在整个应用的任何地方也均可以使用 uni.$emit 来触发全局事件,实现多组件件的数据通信。