uniapp——第1篇:基于vue语法的、比原生开发屌的小程序开发

前提,建议先学会前端几大基础:HTML、CSS、JS、Ajax,还有一定要会Vue!(Vue2\Vue3)都要会!!!不然不好懂

      博主作为大二前端小白,刚刚接触前端微信小程序开发时选择的是基于“微信开发者工具”开发的【原生开发】,然后在上手真正项目的时候头都大了,那么多鬼布局、组件都要自己搞,虽然微信有自带的一些组件插件、也有外部插件,但是我发现都不够美观,而且打比赛跟别人团队一起的时候,才知道人家都是用uniapp开发,你搞个微信开发者工具.......人家懒得鸟你,于是这里开始正式学习uniapp。

一、搭建写uniapp的工具、环境

为了加快我自己以及各位尊贵看官的学习速度,这里不多加阐述,很简单,下载HBuilder:HBuilderX-高效极客技巧,然后安装好,把里面绿了吧唧的那个软件创建快捷方式到桌面,直接点开用就行了,安装都免了,贼方便,不懂自己查视频。

点开之后创建项目,然后根据你自己的喜好,选择vue2、vue3都行

二、认识一下各个文件结构

不认识文件结构的话,你连写代码在哪写你都不知道:

另外还有别的文件夹需要后期我们自己手动添加配置的,比如

【component】:学过vue的知道,存放“组件”文件用的文件夹

【node_modules】:环境依赖,后面装uView这些插件需要用到的

【uni_modules】:以后安装了外部的uView组件后会有的文件夹

components                      // 组件目录
api                             // 封装接口目录
node_modules                    // 环境依赖
pages                           // 页面文件目录index                       // index 页面文件夹index.vue               // index 页面
static                          // 静态资源目录
uni_modules                     // uniapp 环境依赖
unpackage                       // 打包文件目录
common                          // 公共文件目录
App.vue                         // 根组件
index.html                      // 入口页面
main.js                         // 入口文件
manifest.json                   // 应用配置文件
pages.json                      // 页面配置文件
package.json                    // 插件管理文件
package-lock.json               // 插件版本锁定文件
uni.scss                        // 内置样式文件

而且注意看,有没有很眼熟的感觉?看看Vue工程化开发项目、微信小程序原生开发:

基本很像,虽然有区别的大致换汤不换药,一个道理。

三、一个“页面”的结构:.vue文件的结构

先简单看一下一个.vue文件的结构:

简单例子:

<template><!-- 这个view标签,就等于以前的div --><!-- view被叫做“组件”、区别于div的是因为,它有一些新增的属性 --><!-- 比如有一个属性叫做hover-class,是当你去按view标签的时候,会添加这个class的样式 --><view hover-class="hover">这是一个view标签</view><!-- 这样我们给view标签添加了hover-class以后,当我们按它的时候,就会给添加里面的hover类的样式了 --><!-- scroll-view:滚动效果  scroll-y 允许纵向滚动  scroll-x 允许横向滚动 注意“纵向”滚动盒子要有【高度】!!“横向”要有【宽度】(可视范围)里面嵌套view --><scroll-view class="content" scroll-y><image class="logo" src="/static/logo.png"></image><view class="text-area"><text class="title">{{title}}</text></view></scroll-view><!-- text 这个标签相当于span(没有其他样式影响的情况下,不会独占一行,宽和高由内容撑开,这个时候你设置宽高是没有用的); --><text>这是一个text标签</text>
</template><script>export default {data(){return {}}}
</script><style>.content {display: flex;flex-direction: column;align-items: center;justify-content: center;}.logo {height: 200rpx;width: 200rpx;margin-top: 200rpx;margin-left: auto;margin-right: auto;margin-bottom: 50rpx;}.text-area {display: flex;justify-content: center;}.title {font-size: 36rpx;color: #8f8f94;}
</style>

可以看出跟HTML文件基本上是一样的,也是三个语言分三块写,只不过少了一些标签,值得注意的是:

1、在HTML部分,需要用一个<template>标签包裹,相当于HTML里的<body>,然后vue2里只能有一个【最大】的<view>父容器,不能有同级别的;vue3无所谓。

2、script部分需要有export default { ... }来把vue导出,有他才可以在里面写vue代码

3、<style>部分如果在<style>里面加上scoped,设置的样式就不会受影响。该属性的作用是将当前标签下的样式私有化,仅对当前组件起作用,如果不设置,比如你全局样式的配置里配置了view标签,然后你在你某个页面没有用类名选择器,而是用view来直接设置样式,那么就会被受影响

4、有的人会写less或者是scss来代替css(我本人只会css),那么你需要在<style>里加入:lang="scss" 或者 lang="less"

四、组件

跟微信小程序基本一样,学过微信小程序原生开发的,这一块可以简单看一下略过

1、view和text

<view>约等于<div>,<text>约等于<span>

<view>就是div,只不过比它还多一些功能,下面我把它的特有属性放下面,简单看看有需要就用

比如:

那么鼠标悬浮的时候,就会获得.boxHover的样式变成橘色,同时一松开后0秒就恢复原样

<text>就是<span>啦,多的不说,他有这么几个属性,按自己需求可以在<text>标签里写上

那么这里的space有三个值:

自己看吧

2、scroll-view可滚动视图区域

<scroll-view>就是里面内容超出了容器的时候,容器可以有滚动条往左右或者上下划

具体属性有

具体例子:

<template><!-- scroll-view:滚动效果  scroll-y 允许纵向滚动  scroll-x 允许横向滚动 注意“纵向”滚动盒子要有【高度】!!“横向”要有【宽度】(可视范围)里面嵌套view --><scroll-view class="content" scroll-y><view class="text-area"><text class="title">哈哈哈哈哈哈哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈</text></view></scroll-view>
</template><style>.content {height: 220px;}.text-area {display: flex;justify-content: center;}.title {font-size: 36rpx;color: #8f8f94;}
</style>

补充:横向滚动的时候,记得让里面的“块级元素”变为 display: inline-block(一行显示),然后在设置【white-space: nowrap】(不换行),那么就会横向排列显示了

3、swiper轮播图

轮播图组件

具体属性:

具体例子:

4、image照片

就是img,在uniapp里用img也行,用image也行(只不过img是单标签,image是双标签)

注意一点,动态获取image的src的时候需要用require( )函数,因为动态获取的时候是将src字符串转化成别的什么鬼码我也没了解深入,反正

静态获取:src="../images/xxx"这种形式,就是按字符串找照片路径

动态获取:v-bind:src=" item.img "像这种形式,src来自vue的data返回的,就是按转化的机器码找路径

比如:

静态获取:

动态获取:

5、navigator导航组件

跟微信小程序原生开发一样,具体自己去试吧

有两个组件是跟HTML里的<a>超链接是基本一样的,一个是<link>,一个<navigator>,这里先只讲<navigator>

具体属性:

其中open-type是对应点这个导航超链接跳转的方式,也就是跳转到什么页面(上一页?首页?任意页?导航栏上的某一页?......)

6、button和input

跟HTML的一模一样

button的具体属性

值得一提的是type属性是uniapp自带的给button的一些颜色、样式

input的具体属性

其中,type的属性值有

不用研究太多,大部分情况用默认的就够了

下一篇:开始vue语法编写代码

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

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

相关文章

electron + vtkjs加载模型异常,界面显示类似于图片加载失败的图标

electron vtkjs加载模型显示异常&#xff0c;类似于图片加载失败的效果&#xff0c;如上图。 electron开发版本&#xff1a;13。 解决方法&#xff1a;升级electron版本号。 注意&#xff1a;win7最高兼容electron 22版本。

多维时序 | Matlab实现VMD-CNN-GRU变分模态分解结合卷积神经网络门控循环单元多变量时间序列预测

多维时序 | Matlab实现VMD-CNN-GRU变分模态分解结合卷积神经网络门控循环单元多变量时间序列预测 目录 多维时序 | Matlab实现VMD-CNN-GRU变分模态分解结合卷积神经网络门控循环单元多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现VMD-CN…

c++指针的定义和使用

1、定义一个指针 int a10; //定义指针的语法&#xff1a;数据类型 * 指针变量名&#xff1a;int * p&#xff1b; //让指针记录变量a的地址&#xff1a;p &a; int a 10;int* p; p &a; cout << "a的地址为&#xff1a;" << &a <<…

第二十二节 Java 流(Stream)、文件(File)和IO

Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。 Java.io 包中的流支持很多种格式&#xff0c;比如&#xff1a;基本类型、对象、本地化字符集等等。 一个流可以理解为一个数据的序列。输入流表示从一个源读取数据&#xff0c;输出流…

社区居民医疗健康系统 微信小程序

设计原则 本社区健康医疗APP采用 Hbuildex技术&#xff0c;使用Java语言开发&#xff0c;充分保证了系统稳定性、完整性。 社区健康医疗APP的设计与实现的设计思想如下&#xff1a; &#xff08;1&#xff09;操作简单方便、系统界面安全良好、简单明了的页面布局、方便查询相…

GPT-4.5 Turbo意外曝光,最快明天发布?OpenAI终于要放大招了!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

【计算机网络篇】计算机网络的定义和分类

文章目录 &#x1f354;什么是计算机网络&#x1f5c3;️计算机网络的分类⭐按交换方式分类⭐按使用者分类⭐按传输介质分类⭐按覆盖范围分类⭐按拓扑结构分类 &#x1f6f8;小结 &#x1f354;什么是计算机网络 计算机网络是指将多台计算机或其他网络设备通过通信链路连接起来…

汇编语言程序设计 第2章:8086指令系统简介及寻址方式

文章目录 1. 指针的分类及格式1.1 指令的分类1.2 指令格式 2. 寻址方式MOV指令简介2.1 立即寻址2.2 寄存器寻址2.3 直接寻址2.4 寄存器间接寻址2.5 寄存器相对寻址2.6 基址变址寻址2.7 相对基址变址寻址 3. 数据传送指令3.1 通用数据传送指令3.2 地址传送指令&#xff08;LEA、…

C语言黑魔法第三弹——动态内存管理

本文由于排版问题&#xff0c;可能稍显枯燥&#xff0c;但里面知识点非常详细&#xff0c;建议耐心阅读&#xff0c;帮助你更好的理解动态内存管理这一C语言大杀器 进阶C语言中有三个知识点尤为重要&#xff1a;指针、结构体、动态内存管理&#xff0c;这三个知识点决定了我们…

手把手教你打造研究生个人简历模板|轻松驾驭简历设计

在简历设计中&#xff0c;如何展现自己的学历优势&#xff0c;是很多学生困扰的问题。 下面&#xff0c;我们首先从即时设计中分享一些不同风格的研究生简历模板。 风格多样的免费简历设计模板https://js.design/community?categorysearch&search%E7%AE%80%E5%8E%86&…

使用STM32+ESP8266(ESP-01S)+点灯科技(手机端Blinker)实现远程控制智能家居

硬件准备&#xff1a;STM32单片机、ESP8266&#xff08;ESP-01S&#xff09;、CH340C下载烧录器 软件准备&#xff1a;STM32CubeMX、Keil uVision5、Arduino IDE、 点灯科技&#xff08;手机端APP Blinker&#xff09;点灯科技 (diandeng.tech)点击进入 值得注意的是&#x…

【EfficientNetV2】《EfficientNetV2: Smaller Models and Faster Training》

google ICML-2021 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method4. 1 Understanding Training Efficiency4.2 Training-Aware NAS and Scaling4.3 Progressive learning 5 Experiments5.1 Datasets and Metrics5.2 ImageNet ILSVR…

力扣654 最大二叉树 Java版本

文章目录 题目描述解题思路代码 题目描述 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上…

【Python】新手入门学习:详细介绍单一职责原则(SRP)及其作用、代码示例

【Python】新手入门学习&#xff1a;详细介绍单一职责原则&#xff08;SRP&#xff09;及其作用、代码示例 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyT…

力扣106 从中序与后续遍历序列构造二叉树

文章目录 题目描述解题思路代码 题目描述 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], …

海豚调度系列之:认识海豚调度

海豚调度系列之&#xff1a;认识海豚调度 一、海豚调度二、特性三、建议配置四、名次解释 一、海豚调度 Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景&#xff0c;提供了一个可视化操作任务、工作流和全生命周期数据处理过…

使用 opencv 识别答题卡,生成填涂答案

一般答题卡设计时都在试卷4个角预留4个一样大小的黑块 仅能识别选择题判断题之类的填涂答题的题目&#xff0c;不能识别填空题应用题等其它主观题 使用 opencv 识别试卷图片中所有黑块&#xff0c;再根据黑块大小获取四个角的位置&#xff0c;根据四个黑块位置校正图像 将图…

Ubuntu下txt中文显示乱码问题常规解决方法

在正常使用ubuntu 文档时&#xff0c;突然发现txt文档出现&#xff0c;如下情况 无法正常观看&#xff0c;后来搜了一下发现是gedit 没有对应打开文件的编码格式&#xff0c;Ubuntu用的是utf-8,所以打开会有乱码&#xff01;初始没有GBK和GB2312&#xff0c;把GBK和GB2312添加…

vi 显示行号 显示色彩

首先进入当前用户目录下的.vimrc文件/.virc文件&#xff08;具体要看操作系统&#xff09; vi ~/.virc 显示行号 set number 显示色彩 highlight LineNr guifgred 效果

怎样才能选择一套好的ai智能语音系统呢?人工智能电话机器人系统各版本搭建

如今竞争激烈的市场环境下&#xff0c;企业需要不断创新&#xff0c;提高效率&#xff0c;以获得更多的市场份额和利润。而智能电销机器人&#xff0c;作为一种新型的营销工具&#xff0c;正逐渐成为越来越多企业的首选工具&#xff0c;接下来我们看看怎样才能选择一套好的ai智…