当前位置: 首页 > news >正文

vue3移动端脚手架(纯净,集成丰富)

概述

一个纯净的移动端框架 ,用到了 Vue3 + vuex + Vite3 + Vant3 + sass + eslint + stylelint + htmlhint + husky + commitlint axios + axios-adapter + VConsole + 自定义全局 loading ,自定义函数式 dialog (api模仿微信小程序),非常适合做脚手架。

详细

框架demo介绍

Vue3 + vuex + Vite3 + Vant3
sass
eslint + stylelint + htmlhint
husky + commitlint
axios + axios-adapter
VConsole(with custom plugin)
Custom components: loading
Custom components: dialog (api模仿微信小程序)

是一个纯净的前端框架,集成丰富,适合做二次开发。

代码目录结构

代码目录结构

示例代码

定义api(同时可以定义mock数据,可自己写mock逻辑)

    static login(params?: any) {return this.post({url: `/login`,params: params,statusCode: 200,getJsonPath() {const loginSuccess = import('./mock/login/login.json')const loginFail = import('./mock/login/loginFail.json')// 可以自己写逻辑判断返回不同的mockreturn loginSuccess}})}// 实现的核心代码(方便定义api的时候顺便定义mock数据)![](/contentImages/image/20220805/GZzd31UCRK8Euvz0WLe.png)// 利用动态导入,避免非mock状态下,加载太多mock数据

使用函数式对话框

    // api 参考微信小程序 https://developers.weixin.qq.com/miniprogram/dev/api/ui/interaction/wx.showModal.htmlshowModal({content: '测试内容',// showCancel: false})

效果截图
 

    // 实现思路import { createVNode, render } from "vue"import modal from './modal.vue'// 创建一个容器,用来放dialogconst div = document.createElement('div')div.setAttribute('class', 'global_modal_container')document.body.appendChild(div)// 定义好输入export type ModalConfig = {title?: string,content: string,showCancel?: boolean,cancelText?: string,confirmText?: string,confirm?: Function,cancel?: Function,div?: HTMLDivElement,}export default (modalConfig: ModalConfig) => {return new Promise((resolve, reject) => {const confirm = () => {// 根据点击时间,把内容设置为null,达到取消弹窗的效果。render(null, div)resolve(true)}const cancel = () => {render(null, div)}// 判断如果没有回调,那么会返回Promise对象if (!modalConfig.confirm) {modalConfig.confirm = confirm}if (!modalConfig.cancel) {modalConfig.cancel = cancel}modalConfig.div = divconst vnode = createVNode(modal, modalConfig)render(vnode, div)})}

dialog

http://www.lryc.cn/news/258103.html

相关文章:

  • HarmonyOS应用开发-手写板
  • Python中的logging介绍
  • ClickHouse(17)ClickHouse集成JDBC表引擎详细解析
  • 利用CRM系统分析客户行为:精细掌握市场动态
  • 15Linux、GIT及相关相似面试题、PostMan
  • 游戏中小地图的制作__unity基础开发教程
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • 做数据分析为何要学统计学(0)——如果提高数据样本质量
  • ubuntu18.04配置cuda+cudnn+tensorrt+anconda+pytorch-gpu+pycharm
  • C++ 指针常量和常量指针的区别
  • 如何截取Hive数组中的前N个元素?
  • iPaaS架构深入探讨
  • UE4/UE5 修改/还原场景所有Actor的材质
  • Three.js + Vue 处理glb文件过大问题(DRACOLoader加载压缩glb)
  • ICC2:low power与pg strategy(pg_mesh)
  • Python基础期末复习 新手
  • 建筑可视化数据大屏汇总,UI源文件(PC端大屏设计)
  • 万户协同办公平台ezoffice wpsservlet接口任意文件上传漏洞
  • ​shelve --- Python 对象持久化​
  • web服务器之——搭建两个基于不同端口访问的网站
  • 如何使用GaussDB创建外表(FOREIGN TABLE)
  • 服务器数据恢复—raid5少盘状态下新建raid5如何恢复原raid5数据?
  • 软件工程 考试重点
  • swing快速入门(六)
  • 《opencv实用探索·十四》VideoCapture播放视频和视像头调用
  • Vue中$props、$attrs和$listeners的使用详解
  • 爱智EdgerOS之深入解析AI图像引擎如何实现AI视觉开发
  • Pytest+Allure生成自动化测试报告!
  • HTMLTestRunner
  • ELK架构监控MySQL慢日志