uniapp基础学习笔记

文件-新建-项目


image.png
image.png

工具-安装插件

image.png
image.png

编译成微信小程序段代码

设置开发者路径,安装微信开发者工具目录

开启服务端口,微信开发者工具中开启

设置-通用设置-安全

image.png
image.png

├─pages 业务页面文件存放的目录

│ └─index

│ └─index.vue index页面

├─static 存放应用引用的本地静态资源的目录(注意:静态资源只能存放于此)

├─unpackage 非工程代码,一般存放运行或发行的编译结果

├─index.html H5端页面

├─main.js Vue初始化入口文件

├─App.vue 配置App全局样式、监听应用生命周期

├─pages.json 配置页面路由、导航栏、tabBar等页面类信息

├─manifest.json 配置****appid、应用名称、logo、版本等打包信息

└─uni.scss uni-app内置的常用样式变量

如何查看小程序****APPID

登录小程序平台【mp.weixin.qq.com】->开发->开发设置->开发者ID,即可查到AppID。如下图:

在manifest.json中微信小程序配置ID,就可以在手机查看了


image.png
image.png

uni-app 和原生小程序开发区别

开发区别

uni-app 项目每个页面是一个 .vue 文件,数据绑定及事件处理同 Vue.js 规范:

  1. 属性绑定 src="{ { url }}" 升级成 :src="url"

  2. 事件绑定 bindtap="eventName" 升级成 @tap="eventName",支持()传参

  3. 支持 Vue 常用指令 v-forv-ifv-showv-model

其他区别补充

  1. 调用接口能力,建议前缀 wx 替换为 uni ,养成好习惯,支持多端开发。

  2. <style> 页面样式不需要写 scoped,小程序是多页面应用,页面样式自动隔离。

  3. 生命周期分三部分:应用生命周期(小程序),页面生命周期(小程序),组件生命周期(Vue)


    image.png

pages页面布局

根节点为 <template>,这个 <template> 下只能且必须有一个根 <view> 组件。

<template>//页面布局
  <view>
  </view>
</template>

<script>//逻辑代码
        export default {//data:template模板中需要使用的数据
          data() {
            return {
            }
          },
       methods:{//methods方法,如按钮点击、屏幕滚动
        }
        }
</script>

<style lang="scss">//CSS渲染

</style>

<template>里面写页面布局,相当于写HTML

<view> 个人感觉与HTML的<div>十分类似

pages.json页面配置全局配置

{
    "pages": [ // 'pages' 数组中的第一项表示应用的启动页面。参考:https://uniapp.dcloud.io/collocation/pages
        {
            "path": "pages/index/index",
            "style": {
                "navigationBarTitleText": "首页" // 导航栏标题文本
            }
        },
        {
            "path": "pages/my/my",
            "style": {
                "navigationBarTitleText": "我的"
            }
        }
    ],
    "globalStyle": {
        "navigationBarTextStyle": "white", // 全局设置以将导航栏标题字体颜色更改为'black'或'white'
        "navigationBarTitleText": "uni-app",
        "navigationBarBackgroundColor": "#26BB9B", // 全局设置以更改导航栏标题背景颜色
        "backgroundColor": "#F8F8F8"
    },
    "tabBar": {
        "selectedColor": "#26BB9B",
        "list": [
            {
                "pagePath": "pages/index/index",
                "text": "首页",
                "iconPath": "static/tabs/home_default.png",
                "selectedIconPath": "static/tabs/home_selected.png"
            },
            {
                "pagePath": "pages/my/my",
                "text": "我的",
                "iconPath": "static/tabs/user_default.png",
                "selectedIconPath": "static/tabs/user_selected.png"
            }
        ]
    },
    "condition": { // 模式配置,仅在开发期间生效
        "current": 0, // 当前激活的模式(在'list'数组中的索引)
        "list": [
            {
                "name": "searchCity", // 模式名称
                "path": "pages/index/index", // 启动页面(您要调试的页面) - 必填
                "query": "name=searchCity" // 启动参数,在页面的onLoad函数里面得到。
            }
        ]
    },
    "uniIdRouter": {}
}

condition

启动模式配置,仅开发期间生效,用于模拟直达页面的场景,如:小程序转发后,用户点击所打开的页面。

属性说明:
| 属性 | 类型 | 是否必填 | 描述 |
| current | Number | 是 | 当前激活的模式,list节点的索引值 |
| list | Array | 是 | 启动模式列表 |</byte-sheet-html-origin>
list说明:
| 属性 | 类型 | 是否必填 | 描述 |
| name | String | 是 | 启动模式名称 |
| path | String | 是 | 启动页面路径 |
| query | String | 否 | 启动参数,可在页面的 onLoad 函数里获得 |

注意: 在 App 里真机运行可直接打开配置的页面,微信开发者工具里需要手动改变编译模式,如下图:

image.png

index.Vue

不记得属性可以把鼠标悬停在标签可以出现官网链接直接抵达

<template>
        <swiper class="banner" indicator-dots circular autoplay >
                <swiper-item v-for="item in Pictures" :key="item.id">
                        <image @tap="onPoviewImage(item.url)" :src="item.url" ></image>
                </swiper-item>
        </swiper>
</template>

<script>
        export default {
                data() {
                        return {
                                title: 'Hello',
                                //轮播图数据
                                Pictures:[
                                        {id:'1',url:"../../static/img/xixi1.jpg"},
                                        {id:'2',url:"../../static/img/xixi2.jpg"},
                                        {id:'3',url:"../../static/img/xixi3.jpg"}
                                ]
                        }
                },
                methods: {
                        onPoviewImage(url){
                                // console.log(url)
                                uni.previewImage({
                                        urls:this.Pictures.map(v=>v.url),
                                        current:url
                                })
                        }
                }
        }
</script>

<style lang="scss">
        .banner{
                width: 750rpx;
        }
</style>

命令行创建 uni-app 项目

# 通过 git 从 gitee 克隆下载
git clone -b vite-ts https://gitee.com/dcloud/uni-preset-vue.git

常见问题

  • 运行 npx 命令下载失败,请尝试换成手机热点重试

  • 换手机热点依旧失败,请尝试从国内备用地址下载

  • manifest.json 文件添加小程序 AppID 用于真机预览

  • 运行 npx 命令需依赖 NodeJS 环境,Node.js

  1. node.js安装一键式安装

测试安装是否成功,按下【win+R】键,输入cmd,打开cmd窗口

输入:node -v // 显示node.js版本

npm -v // 显示npm版本


image.png

显示版本说明安装成功
环境配置找到安装位置新建两个文件夹node_global和node_cache


image.png

创建完毕后,使用管理员身份打开cmd命令窗口
npm config set prefix "路径\node_global"
npm config set prefix D: node.js\node global
npm config set cache "路径\node cache"
npm config set cache D: node.js\node cache


image.png

配置环境变量
此电脑-单击右键-属性-高级系统设置-环境变量
image.png
image.png
image.png

点击新建
变量名:NODE_PATH
变量值为:node_global路径\node_modules
D:\node.js\node_global\node_modules
在node_global下加一个文件夹node_modules

编辑用户变量中的Path编辑,将node_global路径放在AppData\Roaming\npm上面
image.png
image.png

或者系统变量Path编辑添加;%NODE_PATH%
image.png

测试是否安装成功
npm install express -g//(管理员命令)出现以下说明成功


image.png

下载安装pnpm(pnpm比npm快)
npm install express -g pnpm
刷新环境变量
新开cmd,输入命令提示符

set PATH=C: (刷新环境变量)

必须关闭这个cmd,再新开个cmd,输入

echo %PATH%(重新读取path的配置文件)

此时再直接输入pnpm-v即可成功


image.png
  • 运行 git 命令需依赖 Git 环境,Git 下载地址
    下载依赖包下方打开命令行终端
    image.png
    image.png

编译和运行 uni-app 项目

  1. 安装依赖 pnpm install(管理员身份运行否则报错)

右键HBuilderX管理员身份运行,开启终端之后会多一个node_modules文件夹

  1. 编译成微信小程序 pnpm dev:mp-weixin会多一个dist文件夹
image.png
image.png
  1. 导入微信开发者工具


    image.png

    image.png

    提示
    编译成 H5 端可运行 pnpm dev:h5 通过浏览器预览项目。

用 VS Code 开发 uni-app 项目

为什么选择 VS Code?

HbuilderX对TS类型支持暂不完善

VSCode对TS 类型支持友好,熟悉的编辑器

用 VS Code 开发配置

项目采用 Vue3 + TS 开发 uni-app 项目,所以需要分别安装 Vue3 + TS 插件 和 uni-app 插件。

安装 Vue3 + TS 插件

注意事项

没开发过 Vue3 + TS 项目的小伙伴注意,需要先安装 Vue3 和 TS 的插件,并完成以下配置 👇

查看 Vue3 官方文档

需禁用的插件

image.png
image.png

安装 uni-app 插件

  • 👉 安装 uni-app 开发插件

    • uni-create-view :快速创建 uni-app 页面,要进入改设置,否则只创建.vue
      image.png

      image.png
  • uni-helper :uni-app 代码提示,Ctrl+I可以唤醒代码提示

    image.png

    <meta charset="utf-8">

  • uniapp 小程序扩展 :鼠标悬停查文档,出现属性官方文档可以直接到不懂的,不用一个一个找

    image.png

新建页面

不设置uni-create-view不会有my的同名文件夹
image.png
image.png
  • 👉 TS 类型校验
    • 管理员身份快捷图标右键,打开vscode用Ctrl+`打开命令行终端
    • 安装 类型声明文件 pnpm i -D miniprogram-api-typings @uni-helper/uni-app-types
    • package.json中代码
"devDependencies": {
    "@dcloudio/types": "^3.3.2",
    "@dcloudio/uni-automator": "3.0.0-3080720230703001",
    "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001",
    "@dcloudio/uni-stacktracey": "3.0.0-3080720230703001",
    "@dcloudio/vite-plugin-uni": "3.0.0-3080720230703001",
    "@uni-helper/uni-app-types": "^0.5.12",
    "@vue/tsconfig": "^0.1.3",
    "miniprogram-api-typings": "^3.12.1",
    "typescript": "^4.9.4",
    "vite": "4.0.4",
    "vue-tsc": "^1.0.24"
  }
image.png
  • 管理员身份打开Windows PowerShell输入,最后选y,(如果进入终端后报错pnpm不能在系统运行)
image.png
  • 配置 tsconfig.json
// 类型声明文件
     "types": [
      "@dcloudio/types", // uni-app API 类型
      "miniprogram-api-typings", // 原生微信小程序类型
      "@uni-helper/uni-app-types" // uni-app 组件类型
    ]
  },
  "vueCompilerOptions": {
    // 原配置 `experimentalRuntimeMode` 现调整为 `nativeTags`
    "nativeTags": ["block", "component", "template", "slot"]
    // "experimentalRuntimeMode": "runtime-uni-app"  
  },
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}
  • 👉 JSON 注释问题
    • 设置文件关联,把 manifest.json 和 pages.json 设置为 jsonc
    • 其他json不能写注释


      image.png
      image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容