uniapp 是 Dcloud 公司开发的使用 vue.js 开发所有前端应用的框架,我们只用写一套代码,就可以打包发布到华为商城、小米商城、Appstore 等各大应用平台,也可以发布到微信小程序平台,更可以发布到支付宝、钉钉等应用平台。
通俗易懂解释:
以前开发 app 或者微信小程序,我们还要学习 Android、ios 开发、小程序开发等技术,太 TMD 麻烦,根本卷不动。
现在有了 uniapp 这个框架之后,我们只需要懂 vue,就可以通过 Vue 开发出一个 app 应用。
开发完之后你可以打包发布到各大应用平台,也可以打包发布成一个微信小程序。简直一箭多雕!
我们使用 uniapp 开发应用一般使用官方提供的 HBuilderX 开发工具。
HBuilderX 是 Dcloud 公司开发的一个轻便、极速、强大的 IDE 工具。
这个开发工具内置了 uniapp 、vue 框架,非常的好用。
公司官网:
https://www.dcloud.io/hbuilderx.html
1.设置主题
2.设置代码字体和大小
工具 -》 设置
工具 =》 插件安装
HbuilderX 内置了很多常用的插件,我们也可以去插件市场单独下载安装其他插件
文件-》新建-》项目
新建基于 Vue3 的项目
启动项目
这里选择在 chrome 浏览器中打开
F12,切换到手机预览模式
3.2 项目目录结构
我们运行项目之后,默认展示的是 index.vue 里面的内容
打开页面我们发现 script 里面默认是 Vue2 的选项式 API,接下来我们新建 Vue3 的组合式 API 页面。
新建页面默认会创建同名目录
page.json 会自动添加该页面的配置
在 uniapp 的项目中,不能写 div 和 span 标签,只能用官方提供的组件标签代替。
其中 view 标签代替 div 标签,text 代替 span 标签。
<view> <text class="title">{{title}}</text></view>
在 uniapp 的项目中, image 标签用来加载图片。
<image class="logo" src="/static/logo.png"></image>
官网 pages.json 相关的文档:
https://uniapp.dcloud.net.cn/collocation/pages.html#tabbar
所有跟页面相关的配置都在 pages.json 这个文件里面。
我们新建两个页面:index.vue 和 order.vue
配置项中的第一个页面,作为当前工程的首页(启动页)
运行项目,展示的是 index.vue 页面的内容
这是因为 index.vue 的配置属性在最前面
我们将 order.vue 的配置属性放在最前面
保存之后,项目会优先展示 order.vue 的内容
单个页面的配置主要是配置 style 属性
单页面配置主要事项:
1.navigationStyle 默认是 default,如果设置为 custom,表示自定义,也就不会显示默认的页面导航栏。
2.enablePullDownRefresh 默认是 false,不刷新。当页面需要重新加载新数据的时候可以设置为 true。
当单个页面没有配置页面样式时,就展示全局页面设置的样式
例:index.vue 沒有配置 style 样式,默认显示全局页面的配置
底部导航栏需要在 pages.json 里面配置 tabBar 属性。
tabBar 中的 list 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。
这里设置 index.vue、message.vue、user.vue 三个页面为底部导航栏。
官网关于内部组件的文档:
https://uniapp.dcloud.net.cn/component/
内置组件有很多,大家可以去官网查看文档学习,这里只列举几个常用的组件
<button size="default" type="primary">按钮</button><button size="mini" type="warn">按钮</button>
5.2 input 框<input class="uni-input" style="border: 1px solid gray;" placeholder="请输入用户名" />
<input class="uni-input" :password="true" placeholder="请输入密码" />
<input class="uni-input" type="number" placeholder="请输入数字" />
<swiper class="swiper" circular :indicator-dots="true" :autoplay="true"> <swiper-item> <view class="swiper-item uni-bg-red">A</view> </swiper-item> <swiper-item> <view class="swiper-item uni-bg-green">B</view> </swiper-item> <swiper-item> <view class="swiper-item uni-bg-blue">C</view> </swiper-item></swiper>
uniapp 的内置组件比较少,缺少例如弹框、下拉列表等常见组件。
为了满足大部分公司的功能需求,uniapp 的公司 DLCOUD 提供了的一个跨端的 ui 库:uni-ui。
uni-ui 是基于 vue 组件的、flex 布局的跨全端 ui 框架,它不包括内置组件,它是内置组件的补充。
uni-ui 官方文档:
https://uniapp.dcloud.net.cn/component/uniui/uni-ui.html
接下来介绍一下 uni-ui 的使用方法
方式一:直接新建内置 uni-ui 的项目
在代码区输入 u ,拉出各种内置或 uni-ui 的组件列表,选择其中一个,即可使用该组件。
<view class="container">
<uni-card title="知否技术" note="Tips">
公众号: 知否技术
</uni-card>
</view>
方式二:单独导入某个组件
下载导入
接着就可以在代码里面使用了
关于页面和路由的官方文档:
https://uniapp.dcloud.net.cn/api/router.html#navigateto
uni.navigateTo( )
参数:
例如:
<template> <view class="content"> <button type="primary" @click="toOrder"> 跳转到订单页</button> </view></template><script setup> const toOrder = () => { uni.navigateTo({ url: "/pages/order/order" }) }</script><style lang="scss"></style>
注:该方法只能跳转非 TabBar 的页面,也就是说不能用 navigateTo 方法跳转底部导航页面。
要跳转 TabBar(底部导航)页面,只能使用 switchTab 方法跳转,例如:
1.跳转页面
<template> <view class="content"> <button type="primary" @click="toOrder"> 跳转订单页面</button> </view></template><script setup> const toOrder = () => { uni.navigateTo({ url: "/pages/order/order?age=18&name=zhifou" }) }</script><style lang="scss"></style>
2.获取参数
从 uniapp 的周期函数 onLoad 获取,后续会详细介绍 uniapp 的生命周期
<template> <view> 订单页 </view></template><script setup> import { onLoad } from "@dcloudio/uni-app" onLoad((option) => { console.log("name", option.name) console.log("age", option.age); })</script>
3.结果
uni.navigateBack():关闭当前页面,返回上一页面或多级页面
参数:
例如:
<template> <view> 订单页 <button type="primary" @click="back"> 返回上一页</button> </view></template><script setup> const back = () => { uni.navigateBack(); }</script>