当前位置:   article > 正文

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

uniapp 小程序开发

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

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

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

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

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

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

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

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

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

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

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

  1. components // 组件目录
  2. api // 封装接口目录
  3. node_modules // 环境依赖
  4. pages // 页面文件目录
  5. index // index 页面文件夹
  6. index.vue // index 页面
  7. static // 静态资源目录
  8. uni_modules // uniapp 环境依赖
  9. unpackage // 打包文件目录
  10. common // 公共文件目录
  11. App.vue // 根组件
  12. index.html // 入口页面
  13. main.js // 入口文件
  14. manifest.json // 应用配置文件
  15. pages.json // 页面配置文件
  16. package.json // 插件管理文件
  17. package-lock.json // 插件版本锁定文件
  18. uni.scss // 内置样式文件

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

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

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

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

简单例子:

  1. <template>
  2. <!-- 这个view标签,就等于以前的div -->
  3. <!-- view被叫做“组件”、区别于div的是因为,它有一些新增的属性 -->
  4. <!-- 比如有一个属性叫做hover-class,是当你去按view标签的时候,会添加这个class的样式 -->
  5. <view hover-class="hover">这是一个view标签</view>
  6. <!-- 这样我们给view标签添加了hover-class以后,当我们按它的时候,就会给添加里面的hover类的样式了 -->
  7. <!-- scroll-view:滚动效果
  8. scroll-y 允许纵向滚动
  9. scroll-x 允许横向滚动
  10. 注意“纵向”滚动盒子要有【高度】!!“横向”要有【宽度】(可视范围)里面嵌套view -->
  11. <scroll-view class="content" scroll-y>
  12. <image class="logo" src="/static/logo.png"></image>
  13. <view class="text-area">
  14. <text class="title">{{title}}</text>
  15. </view>
  16. </scroll-view>
  17. <!-- text 这个标签相当于span
  18. (没有其他样式影响的情况下,不会独占一行,宽和高由内容撑开,这个时候你设置宽高是没有用的); -->
  19. <text>这是一个text标签</text>
  20. </template>
  21. <script>
  22. export default {
  23. data(){
  24. return {
  25. }
  26. }
  27. }
  28. </script>
  29. <style>
  30. .content {
  31. display: flex;
  32. flex-direction: column;
  33. align-items: center;
  34. justify-content: center;
  35. }
  36. .logo {
  37. height: 200rpx;
  38. width: 200rpx;
  39. margin-top: 200rpx;
  40. margin-left: auto;
  41. margin-right: auto;
  42. margin-bottom: 50rpx;
  43. }
  44. .text-area {
  45. display: flex;
  46. justify-content: center;
  47. }
  48. .title {
  49. font-size: 36rpx;
  50. color: #8f8f94;
  51. }
  52. </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>就是里面内容超出了容器的时候,容器可以有滚动条往左右或者上下划

具体属性有

具体例子:

  1. <template>
  2. <!-- scroll-view:滚动效果
  3. scroll-y 允许纵向滚动
  4. scroll-x 允许横向滚动
  5. 注意“纵向”滚动盒子要有【高度】!!“横向”要有【宽度】(可视范围)里面嵌套view -->
  6. <scroll-view class="content" scroll-y>
  7. <view class="text-area">
  8. <text class="title">
  9. 哈哈哈哈哈哈哈哈啊哈哈哈
  10. 哈哈哈哈哈哈哈哈哈哈哈哈
  11. 哈哈哈哈哈哈哈哈啊哈哈哈
  12. 哈哈哈哈哈哈哈哈哈哈哈哈
  13. 哈哈哈哈哈哈哈哈啊哈哈哈
  14. 哈哈哈哈哈哈哈哈哈哈哈哈
  15. </text>
  16. </view>
  17. </scroll-view>
  18. </template>
  19. <style>
  20. .content {
  21. height: 220px;
  22. }
  23. .text-area {
  24. display: flex;
  25. justify-content: center;
  26. }
  27. .title {
  28. font-size: 36rpx;
  29. color: #8f8f94;
  30. }
  31. </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的属性值有

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

7、checkbox和checkbox-group复选框组件

作为一个特殊的表单元素有必要提一下

当我们设置多个复选框的时候,我们有时需要监听它们之间“打√”的变化,比如有几个商品,选中了几个打√,就要监听到并马上把它们的商品价格加起来,取消打√时就要减少商品总价,那就要监听表单元素的@change事件

但是checkbox没有@change事件,这时就要引用checkbos-group把它们包起来,给checkboc-group绑定@change事件,就可以监听到checkbox之间“打√”的变化了

例子:(提示这里只看到一个checkbox,不代表就只有一个,它利用v-for遍历vue里数组,数组有几个成员就渲染几个checkbox,但是checkbox-group就一个,一直在外层包着它们)

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

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号