vue3-in-html

在html中使用vue3,不依赖nodejs和webpack,不依赖脚手架

demo源码

https://gitee.com/s0611163/vue3-in-html

功能

  1. 编写了几个简单的组件,使用了element-plus和vuex
  2. 在vue3组件中使用leaflet实现电子地图

特色

  1. 原生 html 开发,不依赖 nodejs 和 webpack,不依赖脚手架
  2. 支持在浏览器中直接运行.vue扩展名的组件文件
  3. style 支持 scoped
  4. 集成了 leaflet 实现电子地图
  5. vue 和 jqeury 混合使用,方便以较小的修改量引入旧代码

代码分支

1. master 分支

主分支,该分支采用异步的方式加载vue文件

2. sync 分支

该分支采用同步的方式加载vue文件,文件较多时存在性能问题

说明

  1. 组件style支持scoped,但实现原理和vue的scoped不同,缺陷是父组件中的样式可能会应用到子组件中具有相同class的标签上,

    出现这种情况时要为子组件受影响的css属性在class中设置一下该属性的值

  2. 支持.vue扩展名的文件,从而使编写的vue模板代码在vscode中具有语法检查

  3. 谷歌浏览器可以打开,火狐浏览器未测试,不支持IE浏览器

  4. 电子地图代码是我从 https://gitee.com/s0611163/leaflet-demo 复制过来的,代码本身与vue没有瓜葛,额外写了一个组件MapPage用来引入电子地图功能,

    使用这种方式不需要把地图相关代码直接写在vue的组件中

关于 controlButtons.js 和 switchMapControl.js

这两个电子地图相关的组件并没有使用 Vue.defineComponent 定义,而是使用 Vue.createApp 的方式定义的,是为了测试不同的实现方式;
controlButtons 直接使用 jquery 实现,并混合了 vue;

思考

  1. 为了解决vue文件加载性能问题,采用了异步函数,由于 async await 的传染性,导致使用defineComponent定义组件时,template必须异步获取,

    导致无法通过import导入定义的组件,必须定义异步函数创建组件,使用defineComponent定义父组件时,子组件必须异步获取

  2. async await 的使用,使得代码简捷清晰,优雅地实现了vue文件的并行请求

注意

  1. 对 iclient-leaflet.js 的引用要放在 proj4leaflet.js 的前面,否则 iclient-leaflet.js 会重写 proj4leaflet.js 中的 L.CRS 的 scale 方法,

    从而使百度地图无法正确加载瓦片;当使用 leaflet 加载百度地图,引用了 iclient-leaflet.js 并且图源不是超图提供时,可能会引发此问题

代码结构

demo效果图

在原生 html 中使用 vue,在浏览器中直接运行 .vue 文件,在 vue 中使用 leaflet的更多相关文章

  1. vscode如何用浏览器预览运行html文件

    1,打开vscode编辑器,点击编辑器主界面左上侧第五个小图标——‘扩展’按钮: 2,进入扩展搜索右拉框,在应用商店搜索框中输入“view in browser”会自动进行搜索 3,等待几秒钟时间,扩 ...

  2. vue组件之间的通信以及如何在父组件中调用子组件的方法和属性

    在Vue中组件实例之间的作用域是孤立的,以为不能直接在子组件上引用父组件的数据,同时父组件也不能直接使用子组件的数据 一.父组件利用props往子组件传输数据 父组件: <div> < ...

  3. CSS-各种cs样式之浏览器兼容处理方式汇总大全(更新中...)

    页面模板 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 ...

  4. 设置sublime text2/3中默认预览浏览器快捷键的方法

    各位前端大神们,大家在用IDE编辑器的时候喜欢用哪些呢?是Dreamweaver.Zend Studio.editplus又或者是sublime text?今天马浩周给大家就要说说设置sublime ...

  5. HTTP请求中的User-Agent 判断浏览器类型的各种方法 网络爬虫的请求标示

    我们知道,当用户发送一个http请求的时候,浏览的的版本信息也包含在了http请求信息中: 如上图所示,请求 google plus 请求头就包含了用户的浏览器信息: User-Agent:Mozil ...

  6. 原生JavaScript拖动div兼容多种浏览器

    说句题外话,虽然博客园嵌入式氛围不行,Web前端氛围还是很好的.我又从 chinaunix 回来了. <html> <head> <script type="t ...

  7. Chrome浏览器扩展开发系列之十六:扩展中可用的Chrome浏览器API

    除了Chrome浏览器支持的chrome.* API之外,Chrome浏览器扩展还可以使用Chrome浏览器为Web页面或Chrome app提供的APIs.对于Chrome浏览器2支持的API,还可 ...

  8. vue 在浏览器控制台怎么调试 谷歌插件vue Devtools

    vue 在浏览器控制台怎么调试 谷歌插件vue Devtools 问题: vuejs里面的变量,怎么用浏览器的console查看? 例如,想在chrome里用console.log查看变量$data, ...

  9. 在WPF中使用CefSharp嵌入浏览器(转)

    在WPF中使用CefSharp嵌入浏览器   日常开发中,我们需要将一些Web页面嵌入到桌面客户端软件中.下面我们使用CefSharp嵌入浏览器来实现. 首先先介绍一下CefSharp嵌入式浏览器,它 ...

  10. 手机端UC浏览器,在java开发的下载功能中存在的问题?

    在java web开发中,不同浏览器对下载文件的格式有不同的要求,有时会出现视频,音频等文件无法下载的问题.我在开发中,也遇到类似的问题,觉得很苦恼. 经过百度和请教学习,得到2个解决方案. 首先得到 ...

随机推荐

  1. MySQL概述安装

    一,数据库概述 1.为什么要使用数据库 将数据持久化. 持久化主要作用:是将内存中的数据库存储在关系型数据库中,本质也就是存储在磁盘文件中. 数据库在横向上的存储数据的条数,以及在纵向上存储数据的丰富 ...

  2. 使用DHorse发布SpringBoot项目到K8S

    前言 在介绍DHorse的操作之前,先来介绍一下使用k8s发布应用的步骤,以SpringBoot应用为例进行说明. 1.首先从代码仓库下载代码,比如GitLab: 2.接着进行构建,比如使用Maven ...

  3. .NET 6 使用 LogDashboard 可视化日志

    在上一篇中我使用Nlog记录日志到了数据库,接下来我们进行日志的可视化展示 1. 关于LogDashboard logdashboard是在github上开源的aspnetcore项目, 它旨在帮助开 ...

  4. MVC控制器传DataTable

    MVC中,控制器return Json(DataTable)会出现错误: 序列化类型为"System.Reflection.RuntimeModule"的对象时检测到循环引用. 解 ...

  5. 拖.sql文件到cmd中运行

    这个非常简单,但是网上说的又不清楚. 第一步cmd中进入数据库           其操作是 mysql -u root - p 密码: 第二步使用数据库         其操作是use 数据库名字: ...

  6. 通过shell定时去创建数据月份表

    对于大数据的采集推送,有时为了方便会将一张大表的数据按照月份分别存储,尤其是在与流水表相关的业务情况,因此需要定时按照月份去创建表. 我有问过是否可以通过数据库的存储过程和事件触发器实现,得到的回答是 ...

  7. Ubuntu 22.04 LTS 安装lnmp

    Ubuntu 22.04 LTS 安装最新稳定版本nginx.mysql5.7和php7.2 全部apt-get安装,就是快,迅速.前提是需要在有网络环境的情况下哈!! 操作系统版本:Ubuntu 2 ...

  8. Tensorflow2.0使用Resnet18进行数据训练

    在今年的3月7号,谷歌在 Tensorflow Developer Summit 2019 大会上发布 TensorFlow 2.0 Alpha 版,随后又发布了Beta版本. Resnet18结构 ...

  9. 从零玩转Nginx-从零玩转nginx

    title: 从零玩转Nginx date: 2023-05-13 23:08:49.074 updated: 2023-05-13 23:17:26.474 url: https://www.yby ...

  10. OfficeWeb365任意文件读取

    OfficeWeb365任意文件读取 OfficeWeb365 /Pic/Indexs接口处存在任意文件读取漏洞,攻击者可通过独特的加密方式对payload进行加密,读取任意文件,获取服务器敏感信息, ...