首页 » 99链接平台 » uni-app 从零开始(一)(组件自己的支持开发引入)

uni-app 从零开始(一)(组件自己的支持开发引入)

admin 2024-10-24 11:21:39 0

扫一扫用手机浏览

文章目录 [+]

技术栈

小程序

H5

uni-app 从零开始(一)(组件自己的支持开发引入) 99链接平台
(图片来自网络侵删)

App

支持平台

Star

uni-app

React/Vue

微信/支付宝...

支持

Android/IOS

14

36.9k+

taro

Vue

微信/支付宝...

支持

ReactNative

12+

31.4k+

总结:uni-app 开发简单,小项目效率高,入门容易。
Taro3上手难度相对较高,需要拥有良好的编程基础,支付宝小程序有些东西需要自己兼容适配(其它端没用过)。

开发效率uni-app高,有自家的IDE(HBuilderX),编译调试打包一体化,对原生App开发体验友好;技术栈方面Taro支持React/Vue,uni-app只支持Vue,从公司项目角度uni-app/Vue比较短平快,社区活跃度也比较高,更容易上手使用。
开始

使用Vue3/Vite创建项目基础模版,命令如下:

npxdegitdcloudio/uni-preset-vue#vite-tsuniapp-appletuni-ui

使用官方ui组件库,由官方同步维护,减少自己填坑

优点:高性能、全端、风格扩展、与uniCloud协作、与uni统计自动集成实现免打点、uni-ui符合全套DCloud组件规范

安装uni-ui

pnpmadd@dcloudio/uni-ui配置组件自动引入

在pages.json文件中配置easycom组件自动引入规则

{ "easycom": { "autoscan": true, "custom": { "^uni-(.)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue" } }}不需要导入直接使用

<tempate><uni-countdown:day="1":hour="1":minute="12":second="40"></uni-countdown></template>pinia

Vue 的状态存储库,它允许您跨组件、页面共享状态。
了解更多查看pinia官方文档。

在stores/index.ts中:

import{createPinia}from'pinia';conststore=createPinia();exportdefaultstore;在stores/counter.ts中:

import{defineStore}from'pinia';exportconstuseCounterStore=defineStore('counter',{state:()=>{return{count:0};},actions:{increment(){this.count++;},},});在main.ts注册store:

import{createSSRApp}from"vue";importstorefrom'@/stores';importAppfrom"./App.vue";exportfunctioncreateApp(){constapp=createSSRApp(App);//注册storeapp.use(store);return{app,};}在页面中使用:

<template><viewclass="content"><view>counter:{{counter.count}}</view><button@click="counter.increment">add</button></view></template><scriptsetuplang="ts">import{useCounterStore}from'@/stores/modules/counter';constcounter=useCounterStore();</script>图标库

阿里图标库:搭建自己的图标库,小程序使用base64转换后的图标格式。

选择自己的图标,下载后复制iconfont.css的内容到自己的图标icon.scss样式文件;删除引入本地的地址,只留base64转换后的地址;在全局中App.vue或main.ts文件中引入图标样式。

<style lang="scss">@import './styles/icon';</style>

使用

<text class="iconfont icon-music"></text>动画

animate css动画库

小技巧背景图

本地背景图片推荐以~@开头的绝对路径,背景图片建议小于40k,小于40k不支持本地背景平台编译自动转化为base64格式。

.test2 { background-image: url('~@/static/logo.png');}easycom

easycom:只要组件安装在项目的 components 目录下,并符合 components/组件名称/组件名称.vue 目录结构。
就可以不用引用、注册,直接在页面中使用。

vite

优秀的vite插件推荐:

unocss原子化cssvite-tsconfig-paths 配置别名映射pinia-auto-refs 自动化storeToRefs(使用vuex可以忽略)unplugin-auto-import 自动导入 Vite、Webpack、Rollup 和 esbuild 的 API

更多配置查看vite官方文档

注意事项vue3 响应式基于 Proxy 实现,不支持iOS9和ie11,查看iOS and iPadOS usage。
暂不支持新增的 Teleport,Suspense 组件推荐阅读uniappvitejsvue3/script-setup

<script setup> 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。
当同时使用 SFC 与组合式 API 时则推荐该语法。
相比于普通的 <script> 语法,它具有更多优势:

更少的样板内容,更简洁的代码。
能够使用纯 Typescript 声明 prop 和抛出事件。
更好的运行时性能 (其模板会被编译成同一作用域的渲染函数,没有任何的中间代理)。
更好的 IDE 类型推断性能 (减少语言服务器从代码中抽离类型的工作)。
defineProps

为了在声明 props 选项时获得完整的类型推断支持

<template><h1>{{msg}}</h1></template><scriptsetuplang="ts">defineProps({msg:String})</script>defineEmits

为了在声明 emits 选项时获得完整的类型推断支持

<template><div@click="onClick">点我</div></template><scriptsetuplang="ts">constemit=defineEmits(['click','change','delete'])constonClick=()=>{emit('click',2)}</script>defineExpose

使用 <script setup> 的组件是默认关闭的——即通过模板 ref 或者 $parent 链获取到的组件的公开实例,不会暴露任何在 <script setup> 中声明的绑定。

子组件child.vue暴露自己的属性

<template><div>子组件child.vue</div></template><scriptsetuplang="ts">import{ref}from'vue'constcount=ref(123456)defineExpose({count})</script>

父组件获取子组件属性

<template><button@click="onClick">父组件</button><childref="childRef"></child></template><scriptsetuplang="ts">import{ref}from'vue'importchildfrom'./components/child.vue'constchildRef=ref(null)constonClick=()=>{console.log(childRef.value.count)//123456}</script>总结

本次基础模版分别引入:

uni-ui 官方ui库pinia 状态管理工具iconfont 图标库animate css动画库vite 优秀插件关注我

需要免费兼职,每天五分钟,实现最美现金流;有感兴趣的,请联系我~

标签:

相关文章

专科即可(面试聘用教育资源教师原件)

一、盘龙区特殊教育资源中心概况 盘龙区特殊教育资源中心,成立于2017年。本中心以昆明市盘龙区培智学校为主体,是集支持、评估...

99链接平台 2024-12-23 阅读693 评论0

激活青青之岛(平台思维发展企业项目)

思想变革篇经始灵台,庶民子来。自古至今人们都懂得筑巢引凤、栽树乘凉的道理。8月1日,2019黑马产业加速实验室夏季峰会在青岛举行,...

99链接平台 2024-12-22 阅读981 评论0

正式首发!(列车旅游铁路首发旅客)

7月9日13时17分,Y459次旅游列车从广元站驶出,开往伊宁站,标志着成都局集团公司首趟“大美新疆号”旅游列车正式开行。来自成都...

99链接平台 2024-12-21 阅读808 评论0