【uniapp】新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握

一、uniapp和HBuilderX介绍

uni-app官方网站:https://uniapp.dcloud.net.cn/

为什么要学习uniapp?

1、一套代码可以打包到不同的应用平台;一套代码编到十几个平台,这不是梦想。眼见为实,扫描以下二维码,亲自体验最全面的跨平台效果!

比较常用的平台如下

16ca95bbd21b448dba322b20f0c2a479.png

2、方便入手,就是使用vue语法写小程序;

3、丰富的生态环境,插件众多。

开发工具:HBuilderX,uniapp使用HBuilderX,两者都是一家公司的,DCloud公司(国产团队)。

主题:绿柔、雅蓝、酷黑

f8eb87b5a3e945adb9a4f3881c60ef03.png

二、

uni-app官网

2.1  新建项目、项目目录、预览uni项目

2.1.1 新建项目

1、新建项目。

40ee1e0493704d8c82aaed9c7cc90bcf.png

2、新建uni-app项目

新建uni-app项目、选择默认模板

项目名称、项目目录、选择vue2版本

b1e165eb1f8d4b98b6304d8246b84135.png

项目创建成功。

2.1.2 项目目录

项目基本构成

f6ba6e517b1b46418110729fb8127996.png

详细构成

2126538a3efd458d87c084669a7237d1.png

不适用unicloud时的项目目录及文件(上面有些目录和文件在下面没有提及,有的是打包后会生成的)

682ce9bdff9c4ca2970776fe90d14de8.png

2.1.3 预览uni项目

1 内置浏览器预览

选择运行,选择第2个,内置浏览器浏览

0e98991119bd40e9b6dbdc4534b852fa.png

2 外置浏览器浏览

1 配置,选择下面的配置Web服务器。

cabc646a9a474075b9e4583ee60f6369.png

2 选择谷歌浏览器打开的话,就配置谷歌浏览器的安装路径

37e15c39e50141f49a6242eac3795ed3.png

3 然后选择外置浏览器的chrome浏览器运行

04b88756012a40be87d9025d80fd34c3.png

运行成功,此时是pc端的页面。

691ea9c19bd44a96953b857d24ceae80.png

单击右键->检查->设备改为手机。

5ca46edd835f4b088d04dd68607c49fa.png

3 小程序浏览

1 配置

选择图示下面的运行设置

35b442cb999c4e7bb6de02428b21bc86.png

配置微信开发者工具的安装路径。

这里要安装微信开发者工具,且微信登陆。

58abf10ef24c4f1f926b7bda78a2e92e.png

2 运行,选择“运行到小程序模拟器”的第一项,微信开发者工具。

运行失败,到微信开发者工具里打开设置,找到安全设置,打开服务端口。

2b51d69928e146ca90b61b9b551324dd.png

此时再运行,即可在微信开发者工具里运行uni项目。

77f4bfa36b8d46779cf418fb65d1761f.png

以上介绍了浏览器和小程序上的预览,还可以打包成app,但是配置起来比较麻烦,先不说这么多了。

可以随便选择预览窗口,浏览器或者小程序都可以。

2.2 vue语法在uniapp中的使用

index.vue

vue的template里只能有一个盒子view。

<template><view class="box"><h1><span class="row">uniapp</span>入门</h1></view>
</template><script>export default {}
</script><style lang="scss">
.box {width: 100px;height: 100px;background-color: lightpink;h1 {font-size: 40px;color: red;.row {font-style: italic;}}
}
</style>
  • 注意
    • 1 view可以用div替代
    • 2 style标签里加上lang="scss",类名可以嵌套a9aa694c431b4e2493a456cbbe05a307.png
    • 3 不需要遵循uniapp里的东西,标签最终会解析成uniapp自己的代码标签5751a760c15b44b4aaa8d67cf7a510d7.png
    • 4 H5和小程序相同标签的显示效果不同。因此真正要写的时候要去学习uni组件的知识。所有盒子都可以使用这样的标签包裹。这种标签就是适配小程序。因此,现在上面的代码只适合开发H5页面,不适合开发小程序。dd78944641354903b6da3a80ab069e13.png4d04a0de51394cb7a5317396bd04a473.png 

微信开发者工具,个人体会,就是微信小程序的开发工具。

2.3 pages.json文件的页面配置和全局配置

2.3.1 创建新页面

pages文件夹,右键选择“新建页面”,按下图操作。

06bf9a8191834e609ce63c15851ba76c.png

创建成功后看到pages.json文件里多了一个新页面

e593ca3a680540f0ad1b2eee449aad6e.png

2.3.2 显示新页面

将list页面挪到index上面。

d4b172df8b9a45d391c4be0c5dbfcf26.png

这样list就放在首页了。

2af371a1daaa46f7bd7709c725279f07.png

通过这个操作,实现哪个页面,就显示当前页面。

2.3.3 页面配置

新页面标题

736affc6ffa14d81b24013182e1d4796.png

其他全局文件的配置。

找到网站的全局文件一栏https://uniapp.dcloud.net.cn/collocation/pages.html

e1384f3bfeed4d2d80180628fa7fde67.png57768408ced341dcb5bbe9a0e408e558.png

以下就是页面可配置的属性,不同小程序之间有一定的差异。

5ab5b66ddc1a4053b4af2123e22ed5ab.png

例如,配置页面导航栏的背景色和文字颜色。

b664701141064b41b16daee05a428383.png

页面效果如图

8401b9015e4f4b19b6d92573db5655ee.png

2.3.4 全局配置

主要是globalStyle

  • globalStyle代表页面窗体。
  • 全局配置,包容性大,作用域小一些。
  • navigationBarTitleText 
    • 如果页面设置标题,则使用页面设置的标题navigationBarTitleText;
    • 如果没有,则页面标题使用globalStyle的navigationBarTitleText 
  • navigationBarBackgroundColor、navigationBarTextStyle、 backgroundColor同理也是如此

36fb87bf197242f3adf234fb53a3d31c.png

2.4 uniapp组件

  • 为什么要学习uniapp组件
    • 上述讲的东西做H5没有问题,因为H5页面支持html标签。
    • 但是项目还需要支持小程序、App等。所以要遵循标准规范。
    • 因为小程序页面不支持html标签,所以要按照规则进行书写。

uniapp官网的组件https://uniapp.dcloud.net.cn/component/

小程序的组件https://developers.weixin.qq.com/miniprogram/dev/component/

上述两个的组件十分相似,因为在小程序出现后,uniapp才出现。而且uniapp通过微信小程序的写法完成了其他小程序的写法。

小程序官网有的东西,uniapp里都有。uniapp有的,小程序里没有。uniapp的包容性更强,东西更多,包含了vue组件等。

如果单纯想开发微信小程序,建议去学习微信小程序的课程。

其他组件,可以去简书、掘金里去找说明。

2.4.1 view 视图容器 块级标签 div

view标签比div标签更强,是uniapp自己封装的组件。

何为组件:组件可以理解为一个小模块,将公用的功能封装起来。

使用

<template><view class="out"><view class="box"></view></view>
</template>

类似以前用的div。

注意1:

.out {.box {}
}

会自动解析为

.out .box { }

注意2:

rpx:响应式单位。

例如,以px为单位的div,

.out {.box {width: 200px;height: 200px;background-color: pink;}
}

在不同机型上的绝对大小是一样的

而要是想生成一个全屏。

使用响应式单位rpx页面样式与布局 | uni-app官网

750*1334,是iphone6的屏幕分辨率,只需要记750。

以px为单位的固定大小的长度是不响应的,所以建议使用rpx响应式单位。

2.4.2 icon 图标组件 行级标签

icon | uni-app官网

每个平台的图标不完全相同。

8830ff47a1ee439ca6ef3fe8440e4e07.png

例如

		<view class="box"><icon type="success" size="26"/></view>

效果

95b480d11d104127a0ebb8ec55466993.png

2.4.3 text 文本组件 行标签 span

text替换之前的span标签。

text还有一些特别的属性,可以去官网看text组件 | uni-app官网

2.4.4 scroll-view组件 可滚动视图容器

scroll-view | uni-app官网

滑动,左右滑动。

例如,这里有5个220rpx*220rpx大小的盒子,但是边框高度限制为220rpx

b3198589e2b94457b2d1f4c1bb08b2d5.png

代码

		<scroll-view class="scroll"><view class="group"><view class="item">111</view><view class="item">111</view><view class="item">111</view><view class="item">111</view><view class="item">111</view><view class="item">111</view></view></scroll-view>

样式style

.scroll {border: 1px solid red;box-sizing: border-box;height: 220rpx;.group {.item {width: 220rpx;height: 220rpx;background: blue;}}
}

问题:希望能将蓝色小块做成横向滑动的效果。

p7

首先,将蓝色小块改为行级块元素。处理一下后

scroll-view的滚动属性。

添加scroll-x横向滚动属性。

效果

蓝色盒子可以滑动,底部有滚动栏。

scroll-y同理,这里不再演示。

scroll-view的其他属性可以等js学习后再尝试。

2.4.5 swiper组件 滑块视图容器

像移动端轮播图的实现,就是通过swiper实现的。

与scroll-view左右滑动不同,swiper每次就滑动一屏。

swiper-item,swiper的子元素

属性circular,即循环滑动。

此外还有自动切换时间autoplay,用interval设置切换时间。

此外还有轮播图下面的指示点,有兴趣可以自己试一下。

2.4.6 image 图片组件

image和video是最常用的媒体组件。audio(音频)和video(视频)几乎一样。camera是相机组件。

image标签的使用

		<image src="/static/logo.png" mode=""></image>

注意:1、反斜杠/代表项目主体。2、src也可以是网络图片的地址

效果

效果:绿色的图变形了。

但是html支持的img标签对应的图片不会变形。(小程序不支持html标签)

原因:image组件有一个默认的宽高,320px*240px。

解决方法:1 外加一个类,来额外控制宽高。

p8 8:15

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/341905.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JAVA】Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 懒汉式&#xff08;Lazy Initialization&#xff09;&#xff1a; 双重检查锁定&#xff08;Double-Checked Locking&#xff09;…

antd时间选择器,设置显示中文

需求 在实现react&#xff0c;里面引入antd时间选择器&#xff0c;默认显示为英文 思路 入口处使用ConfigProvider全局化配置&#xff0c;设置 locale 属性为中文来实现。官方文档介绍全局化配置 ConfigProvider - Ant Design 代码 import React from react; import { Prov…

SpringBoot原理(@Conditional)—三种自动配置方法、步骤详解

简介&#xff1a;我们一直在说基于SpringBoot开发简单、快捷&#xff0c;但是总是不太清楚为什么会有这样的便利&#xff0c;对于开发人员来说我们不仅要知其然&#xff0c;还要知其所以然&#xff0c;这篇文章就是说明SpringBoot的底层原理&#xff0c;让读者对SpringBoot底层…

Emoji表情大全

等等... 推荐一下几个网站&#xff0c;去复制就可以啦&#xff01; Emoji 表情大全All Emoji Symbols Are Collected Here, And Now Emoji Can Display On IOS, Android, OSX, And Windows Systems. Just The Symbol ✂ And &#x1f4cb; To App, SMS, Facebook, Twitter An…

一卡通水控电控开发踩过的坑

最近在做一个项目&#xff0c;是对接一卡通设备的。我一开始只拿到设备和3个文档开局。不知道从哪下手。一步一步踩坑过来。踩了很多没有必要的坑&#xff0c;写出来给有用的人吧。 读卡器怎么用&#xff1f; 有个读卡器&#xff0c;一开始什么软件也不提供。我都不知道是干嘛…

基于JavaWeb+BS架构+SpringBoot+Vue+Hadoop的物品租赁系统的设计与实现

基于JavaWebBS架构SpringBootVueHadoop的物品租赁系统的设计与实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 目  录 I 1绪 论 1 1.1开发背景 1 1.2开发目的与意义 1 1.2.1开发目…

Rabbit R1是一款AI驱动的小工具,可以代替你使用应用程序

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

CES 2024丨引领变革,美格智能为智能终端带来生成式AI能力

作为电子行业的“风向标”&#xff0c;CES 2024&#xff08;国际消费电子展&#xff09;于1月9日至12日在美国拉斯维加斯举办。本届展会可谓是AI的盛宴&#xff0c;芯片、AI PC、智能家居、汽车科技、消费电子等领域与AI相关的前沿成果接连发布&#xff0c;引领人工智能领域的科…

MySQL 按日期流水号 条码 分布式流水号

有这样一个场景&#xff0c;有多台终端&#xff0c;要获取唯一的流水号&#xff0c;流水号格式是 日期0001形式&#xff0c;使用MySQL的存储过程全局锁实现这个需求。 以下是代码示例。 注&#xff1a;所有的终端连接到MySQL服务器获取流水号&#xff0c;如果获取到的是 “-1”…

.NET 反射的介绍和简单应用

什么是反射&#xff1f; 反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型&#xff0c;这些信息在设计时是未知的&#xff0c;这种能力类似于后期绑定。反射还支持的更高级的行为&#xff0c;能在运行时动态创建新类型&#xff0…

Ubuntu 20.04 Intel RealSense D435i 相机标定教程

下载编译code_utils mkdir -p ~/imu_catkin_ws/src cd ~/imu_catkin_ws/src catkin_init_workspace source ~/imu_catkin_ws/devel/setup.bash git clone https://github.com/gaowenliang/code_utils.git cd .. catkin_make报错&#xff1a;sumpixel_test.cpp:2:10: fatal err…

Spring Boot中加@Async和不加@Async有什么区别?设置核心线程数、设置最大线程数、设置队列容量是什么意思?直接在yml中配置线程池

在 Spring 中&#xff0c;Async 注解用于将方法标记为异步执行的方法。当使用 Async 注解时&#xff0c;该方法将在单独的线程中执行&#xff0c;而不会阻塞当前线程。这使得方法可以在后台执行&#xff0c;而不会影响主线程的执行。 在您提供的代码示例中&#xff0c;a1() 和…