uni-app框架(项目创建)

news2024/9/17 7:15:27
1.学习说明

dcloud官方除uni-app外,还有新生的uni-app x(即下一代uni-app),如果是初学者或者刚入门同学,建议还是使用uni-app进行开发。

无论是vue还是uni,作为前端开发的一个框架学习方法是一致的,因此在开发学习的过程中需要注意目录结构、开发规范、生命周期、页面结构等重点,然后依次进行深入学习。

本文档以vue3、组合式api、ts进行开发学习。

2.框架介绍
  • 官方文档:https://uniapp.dcloud.net.cn/
  • 框架优势

        uni-app是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。

3.项目创建
1.HBuilderX可视化创建(推荐)
  • 下载开发工具

        https://www.dcloud.io/hbuilderx.html

  • 在点击工具栏里的文件->新建->项目(快捷键Ctrl+N)
  • 选择uni-app
  • 选择模板(建议使用默认模板)
  • 选择vue版本(建议vue3)
2.vue-cli创建

全局安装 vue-cli

npm install -g @vue/cli

创建uni-app

vue create -p dcloudio/uni-preset-vue my-project
4.Typescript 配置

创建文件并进行配置修改,在根目录创建tsconfig.json 文件,点击查看官方手册。

// tsconfig.json{  "compilerOptions": {    "target": "esnext",    "module": "esnext",    "strict": true,    "jsx": "preserve",    "moduleResolution": "node",    "esModuleInterop": true,    "sourceMap": true,    "skipLibCheck": true,    "importHelpers": true,    "allowSyntheticDefaultImports": true,    "useDefineForClassFields": true,    "resolveJsonModule": true,    "lib": [      "esnext",      "dom"    ],    "types": [      "@dcloudio/types"    ]  },  "exclude": [    "node_modules",    "unpackage",    "src/**/*.nvue"  ]}
5.UI组件安装

此处使用npm安装,其他安装方式查看官方安装手册,注意:安装完成后重新编译运行!!!

1.uni-ui
(1) 安装 sass
npm i sass -D
(2)安装 sass-loader
npm i sass-loader@10.1.1 -D
(3)安装uni-ui
npm i @dcloudio/uni-ui
(4) 配置easycom
 打开项目根目录下的pages.json 并添加 easycom 节点, 如下示例图,代码紧随其后。

图片

// pages.json
{
  "easycom": {
    "autoscan": true,
    "custom": {
      // uni-ui 规则如下配置
      "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
    }
  },
  
  // 其他内容
  pages:[
    // ...
  ]
}
2.uview-plus
(1)安装 sass(若已安装,可跳过)
npm i sass -D
(2)安装 sass-loader(若已安装,可跳过)
npm i sass-loader@10.1.1 -D
(3)安装uview-plus,依次安装命令如下:
npm install uview-plus
npm install dayjs
npm install clipboar
(4)引入uview-plus主JS库

在项目src目录中的main.js中,引入并使用uview-plus的JS库,注意这两行要放在const app = createSSRApp(App)之后。

// #ifdef VUE3
import { createSSRApp } from 'vue'
import uviewPlus from 'uview-plus'
export function createApp() {
  const app = createSSRApp(App)
  app.use(uviewPlus)
  return {
    app
  }
}
// #endif

示例截图如:

图片

(5)引入uview-plus的全局SCSS主题文件

   在项目根目录的uni.scss中引入此文件

/* ui.scss */
@import 'uview-plus/theme.scss';

图片

(6)引入uview-plus基础样式

在App.vue中首行的位置引入,注意给style标签加入lang="scss"属性,截图及代码如下:

图片

<style lang="scss">
  /* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
  @import "uview-plus/index.scss";
</style>
(7)配置easycom组件模式

打开项目根目录下的pages.json 并添加 easycom 节点。因为上面安装uni-ui时已进行配置,因此此处仅需在custom种添加已下三行即可,代码及截图如下:

"^u--(.*)": "uview-plus/components/u-$1/u-$1.vue",
"^up-(.*)": "uview-plus/components/u-$1/u-$1.vue",
"^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue"

图片

6.页面重构
  • 删除旧文件

        删除pages目录下的原有index.vue文件

  • 创建新文件

        在pages目录下新建index.vue文件,截图及完整示例代码如下(直接复制运行即可):

图片

<template>
  <view class="content u-flex-column">
    <uni-section title="定义数据" type="line">
      <view class="data"><text class="title">{{title}}</text></view>
    </uni-section>
    <uni-section title="uni-ui组件示例" type="line">
      <view class="data">
        <up-text color="#fff" text="uni-ui组件示例"></up-text>
        <uni-badge size="small" :text="100" absolute="rightBottom" type="primary">
          <button type="default">右下</button>
        </uni-badge>
      </view>
    </uni-section>
    <uni-section title="uview-plus组件示例" type="line">
      <view class="data u-btn">
        <up-text color="#fff" text="uview-plus组件示例"></up-text>
        <up-button type="primary" text="确定"></up-button>
        <up-button type="primary" :plain="true" text="镂空"></up-button>
      </view>
    </uni-section>
  </view>
</template>

<script lang="ts" setup>
  import { ref } from 'vue'
  const title = ref('测试');
</script>

<style lang="scss" scoped>
  .content {
    width: 100%;
    min-height: 50vh;

    .data {
      padding: 0 15rpx;
    }
  }
</style>
7.项目运行

根据实际应用场景运行至浏览器或小程序即可。

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

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

相关文章

扩展自动化,超越RPA的局限

白皮书大纲 01 概述 02 端到端流程超越节省的时间 03 企业自动化与机器人流程自动化的对比 04 将RPA集成到企业工作流程中 05 实现端到端自动化——构建流程 06 中枢神经系统&#xff1a;一个编排平台 07 结合RPA和数环通iPaaS的益处 01 概述 企业运营依赖于流程。有效的流程是…

城市排涝与海绵城市规划设计中的水文水动力模拟技术应用

随着计算机的广泛应用和各类模型软件的发展&#xff0c;将排水系统模型作为城市洪灾评价与防治的技术手段已经成为防洪防灾的重要技术途径。本次培训将聚焦于综合利用GIS及CAD等工具高效地进行大规模城市排水系统水力模型的建立&#xff0c;利用SWMM实现排水系统水力模拟。讲解…

FastAPI+React全栈开发02 什么是FARM技术栈

Chapter01 Web Development and the FARM Stack 02 What is the FARM stack and how does it fit together? FastAPIReact全栈开发02 什么是FARM技术栈 It is important to understand that stacks aren’t really special, they are just sets of technologies that cover…

政安晨:【Keras机器学习实践要点】(三)—— 编写组件与训练数据

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎机器学习 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 介绍 通过 Keras&#xff0c;您可以编写自定…

【数据结构】顺序表的定义

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;数据结构 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

【牛客】SQL142 对试卷得分做min-max归一化

描述 现有试卷信息表examination_info&#xff08;exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长, release_time发布时间&#xff09;&#xff1a; idexam_idtagdifficultydurationrelease_time19001SQLhard602020-01-01 10:00:0029002Chard802020-01-0…

SQLite使用的临时文件(二)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite数据库文件损坏的可能几种情况 下一篇&#xff1a;SQLite数据库成为内存中数据库&#xff08;三&#xff09; ​ 1. 引言 SQLite的显着特点之一它是一个数据库由一个磁盘文件组成。 这简化了 SQLite 的使用…

【动态规划】Leetcode 62. 不同路径

【动态规划】Leetcode 62. 不同路径 解法 ---------------&#x1f388;&#x1f388;62. 不同路径 题目链接&#x1f388;&#x1f388;------------------- 解法 &#x1f612;: 我的代码实现> 动规五部曲 ✒️确定dp数组以及下标的含义 dp[i][j] 走到i, j这个格子的…

Open WebUI大模型对话平台-适配Ollama

什么是Open WebUI Open WebUI是一种可扩展、功能丰富、用户友好的大模型对话平台&#xff0c;旨在完全离线运行。它支持各种LLM运行程序&#xff0c;包括与Ollama和Openai兼容的API。 功能 直观的界面:我们的聊天界面灵感来自ChatGPT&#xff0c;确保了用户友好的体验。响应…

(四)图像的%2线性拉伸

环境&#xff1a;Windows10专业版 IDEA2021.2.3 jdk11.0.1 OpenCV-460.jar 系列文章&#xff1a; &#xff08;一&#xff09;PythonGDAL实现BSQ&#xff0c;BIP&#xff0c;BIL格式的相互转换 &#xff08;二&#xff09;BSQ,BIL,BIP存储格式的相互转换算法 &#xff08;三…

Netty剖析 - 掌握Netty 整体架构脉络

文章目录 Netty 整体结构Core 核心层Protocol Support 协议支持层Transport Service 传输服务层 Netty 逻辑架构网络通信层事件调度层服务编排层组件关系梳理 Netty 源码结构Core 核心层模块Protocol Support 协议支持层模块Transport Service 传输服务层模块 思维导图 Netty 整…

机器学习OpenNLP

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl OpenNLP概述 OpenNLP是一个基于机器学习的自然语言处理开发工具包&#xff0c;它是Apache软件基金会的一个开源项目。OpenNLP支持多种自然语言处理任务&#xff0c;如分词、…

云数据库认识

云数据库概述 说明云数据库厂商概述Amazon 云数据库产品Google 的云数据库产品Microsoft 的云数据库产品 云数据库系统架构UMP 系统概述UMP 系统架构MnesiaRabbitMQZooKeeperLVSController 服务器Proxy 服务器Agent 服务器日志分析服务器 UMP 系统功能容灾 读写分离分库分表资源…

如何利用python 把一个表格某列数据和另外一个表格某列匹配 类似Excel VLOOKUP功能

环境: python3.8.10 Excel2016 Win10专业版 问题描述: 如何利用python 把一个表格某列数据和另外一个表格某列匹配 类似Excel VLOOKUP功能 先排除两表A列空白单元格,然后匹配x1表格和x2表格他们的A列,把x1表格中A列A1-A810范围对应的B列B1-B810数据,匹配填充到x2范围…

android studio忽略文件

右键文件&#xff0c;然后忽略&#xff0c;就不会出现在commit里面了 然后提交忽略文件即可

纯前端调用本机原生Office实现Web在线编辑Word/Excel/PPT,支持私有化部署

在日常协同办公过程中&#xff0c;一份文件可能需要多次重复修改才能确定&#xff0c;如果你发送给多个人修改后再汇总&#xff0c;这样既效率低又容易出错&#xff0c;这就用到网页版协同办公软件了&#xff0c;不仅方便文件流转还保证不会出错。 但是目前一些在线协同Office…

6.1 LIBBPF简介

写在前面 eBPF 是一项革命性的技术! 内核对于很多开发者来说,就是一个像黑洞一样的存在。它是操作系统最核心的存在,管理者我们的整个计算机和外设。基于稳定性,性能和安全性,我们对内核的任何修改往往是慎之又慎。 但是。 eBPF的出现了,它几乎无需通过更改任何内核源…

【数据存储】TIDB和MySQL的区别

1.TIDB和MySQL对比 对比内容MySQLTiDB架构设计一个传统的单机数据库系统&#xff0c;采用主从复制和分区表等方式来实现水平扩展一个分布式的 NewSQL 数据库&#xff0c;采用分布式存储和分布式事务等技术&#xff0c;支持水平扩展和高可用性事务支持 InnoDB 存储引擎来支持事…

开发者的瑞士军刀:DevToys

DevToys&#xff1a; 一站式开发者工具箱&#xff0c;打造高效创意编程体验&#xff0c;让代码生活更加得心应手&#xff01;—— 精选真开源&#xff0c;释放新价值。 概览 不知道大家是否在windows系统中使用过PowerToys&#xff1f;这是微软研发的一项免费实用的系统工具套…

Selenium 自动化 —— 定位页面元素

更多内容请关注我的 Selenium 自动化 专栏&#xff1a; 入门和 Hello World 实例使用WebDriverManager自动下载驱动Selenium IDE录制、回放、导出Java源码浏览器窗口操作切换浏览器窗口 使用 Selenium 做自动化&#xff0c;我们不仅仅是打开一个网页&#xff0c;这只是万里长…