news 2026/7/2 6:02:04

手把手编写儿童手机远程监控App之vue3 路由重构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手编写儿童手机远程监控App之vue3 路由重构

概述

上节使用AI Agent生成水平排列的按钮,Copilot 还是非常好用,代码提示补全,开发非常的贴心。
嘟宝是为监督孩子身边环境而创建的一套应用,它能够实现后台驻留长连接,随时接收嘟妈信令,建立音视频通道点对点通信,而不需要中转服务器。嘟妈是一套WEB 应用,使用vue3编写,能够兼容app、小程序开发 。而嘟宝采用原生Andorid开发,能够获取最大权限,保持在后台运行。
目前为止,嘟宝完成的基本功能设计包括

  • MQTT 基础通信
  • 后台驻留
  • SQLite数据存储
  • 二维码显示身份识别码
  • 开启自启动前台服务
  • 任务栏消息发送与点击
  • 高德定位实时更新
  • webrtc点对点通信
  • mAgentWeb控件封装解决全屏与获取视频权限问题
    嘟妈采用vue3编写它的核心需求已完成包含以下部分:
  • 完成登录注册页面
  • 完成二维码扫描完成与嘟宝绑定
  • 与嘟妈建立音视频通信
  • 查看嘟宝桌面共享视频
    目前嘟妈的路由导航如下图:

可以看到,当点击嘟宝时,嘟宝页面并未挡住底部导航栏。应是全屏显示,UI美观。重新组织网页骨架

重新组织网页骨架

router.ts路由信息

import{createRouter,/*createWebHistory,*/createWebHashHistory}from"vue-router";import{getUserData}from'@/api/storge'const routes=[{path:'/',redirect:'/main'},{path:'/home',name:'Home',component:()=>import('@/view/home.vue'),children:[{path:'/main',name:'Main',component:()=>import('@/view/main.vue')},{path:'/code',name:'Code',component:()=>import('@/view/qrcode.vue')},{path:'/me',name:'me',component:()=>import('@/view/me.vue')},]},{path:'/dubao/:dubaoId',name:'Dubao',component:()=>import('@/view/dubao.vue')},{path:'/login',name:'login',component:()=>import('@/view/login.vue')},]const router=createRouter({// history: createWebHistory(),history:createWebHashHistory(),routes:routes})router.beforeEach((to)=>{const token=getUserData();if(!token&&to.path!=='/login'){return{path:'/login'}}returntrue})export default router;

app.vue源码

<template><div class="app"><router-view v-slot="{ Component }"><transition name="fade"mode="out-in"><component:is="Component"/></transition></router-view></div></template><script setup lang="ts">import{onMounted,onUnmounted}from'vue'import{useMQTTStore}from'./store/mqtt';const mqtt=useMQTTStore()mqtt.$subscribe(async(mutate:any,state)=>{if(typeof mutate.events.newValue==='boolean'){return;}let data=JSON.parse(state.datamsg);let msg=JSON.parse(data.msg);switch(msg.code){case'answer':break;case'ice':default:break;}});onMounted(()=>{mqtt.connect();})onUnmounted(()=>{mqtt.disconnect();});</script>

home.vue主页页面

<template><div class="app"><!--路由视图--><div class="main"><router-view v-slot="{ Component }"><transition name="fade"mode="out-in"><component:is="Component"/></transition></router-view></div><!--底部 Tabbar(使用 Vant4语法)--><van-tabbar route fixed placeholder><van-tabbar-item replace to="/main"icon="home-o">首页</van-tabbar-item><van-tabbar-item replace to="/code"icon="scan">扫一扫</van-tabbar-item><van-tabbar-item replace to="/me"icon="friends-o">我的</van-tabbar-item></van-tabbar></div></template><script setup lang="ts"></script>

其他home子页面

home导航栏有三个页面,分别是

  • main.vue
  • scan.vue
  • me.vue
    项目地址在github上。
    嘟宝地址
    嘟妈地址

#演示效果

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 6:00:21

智能中控面板屏幕模组的选型方案

智能中控面板这个产品形态&#xff0c;这几年在家电、工控、车载和智能楼宇几个领域同时起量。家电侧&#xff0c;油烟机、洗衣机、冰箱的中控屏从段码LCD升级到TFT彩屏&#xff0c;尺寸从2寸跑到10寸。工控侧&#xff0c;PLC面板、HMI人机界面、产线中控台&#xff0c;屏幕需求…

作者头像 李华
网站建设 2026/7/2 6:00:17

踩了一堆坑,终于把微服务系统全面升级 JDK17 和 SpringBoot3 了

最近正在给自己的开源项目校园博客升级到 JDK17 以及 SpringBoot3&#xff0c;正好记录下升级和踩坑的过程&#xff0c;给大家提供一些解决方案的参考。先说结论&#xff1a;非常推荐升级JDK17&#xff0c;成本低收益高。至于SpringBoot3.0&#xff0c;迁移成本比较高&#xff…

作者头像 李华
网站建设 2026/7/2 5:58:10

别踩,2026做视频总结的成本误区,我整理了亲测实操省钱经验

先说明白核心判断 2026做视频总结&#xff0c;最容易踩的成本误区有两个&#xff1a;要么贪零预算用免费工具&#xff0c;最后花几个小时改错字理结构&#xff0c;时间成本远超工具费用&#xff1b;要么冲动买大平台年费&#xff0c;大半额度闲置浪费。我以当前版本亲测了5款主…

作者头像 李华
网站建设 2026/7/2 5:57:14

llama.cpp那点事

电脑硬件配置 llama.cpp 参数调优指南(RTX 5060 8G 显存) 📋 目录导航 1. 硬件配置 2. 运行速度参考 3. MoE 相关参数 3.1 核心参数 --n-cpu-moe 3.2 关键区别 3.3 与 -ngl 的关系

作者头像 李华