背景

一般当我们写了一个 npm 包或者 vue 包的时候,想在一个 vue 项目中引入一下试试,但是开一个项目又要配置 webpack 之类的很麻烦,我们只想简单的进行验证怎么办呢?

其实我们可以直接建一个 index.html 文件

vue2

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>标题</title><!-- 也可以引入组件库引入样式 --><link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.3/theme-chalk/index.css">
</head>
<body><div id="app"><h1>{{ hello }}</h1><el-button type="primary">点击</el-button></div>
</body>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.js"></script>
<!-- 也可以引入组件库 -->
<script src="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.3/index.js"></script>
<script>new Vue({el: '#app',data: function() {return { hello: 'hello world'}},methods: {}})
</script>
</html>

vue3

普通方式:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>标题</title>
</head>
<body><div id="app"><h1>{{ message }}</h1></div>
</body>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
const { createApp } = VuecreateApp({data() {return {message: 'Hello Vue!'}}
}).mount('#app')
</script>
</html>

使用 ES 模块构建

<div id="app">{{ message }}</div><script type="module">import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'createApp({data() {return {message: 'Hello Vue!'}}}).mount('#app')
</script>

使用导入映射表 (Import Maps) :

<script type="importmap">{"imports": {"vue": "https://unpkg.com/vue@3/dist/vue.esm-browser.js"}}
</script><div id="app">{{ message }}</div><script type="module">import { createApp } from 'vue'createApp({data() {return {message: 'Hello Vue!'}}}).mount('#app')
</script>

拆分模块:

<!-- index.html -->
<script type="module">import { createApp } from 'vue'import MyComponent from './my-component.js'createApp(MyComponent).mount('#app')
</script>
// my-component.js
export default {data() {return { count: 0 }},template: `<div>count is {{ count }}</div>`
}

最后

如果直接在浏览器中打开了上面的 index.html,你会发现它抛出了一个错误,因为 ES 模块不能通过 file:// 协议工作。为了使其工作,你需要使用本地 HTTP 服务器通过 http:// 协议提供 index.html。

要启动一个本地的 HTTP 服务器,请先安装 Node.js,然后通过命令行在 HTML 文件所在文件夹下运行 npx serve。你也可以使用其他任何可以基于正确的 MIME 类型服务静态文件的 HTTP 服务器。

可能你也注意到了,这里导入的组件模板是内联的 JavaScript 字符串。如果你正在使用 VSCode,你可以安装 es6-string-html 扩展,然后在字符串前加上一个前缀注释 /html/ 以高亮语法。

vue:单文件的使用相关推荐

  1. VSCode环境下配置ESLint 对Vue单文件的检测

    本文介绍了在VSCode环境下如何配置eslint进行代码检查,并介绍了如何对.vue单文件进行支持. ESLint 安装 1.在工程根目录下,安装eslint及初始化 $ npm install e ...

  2. Vue 单文件组件||Vue 单文件组件的基本用法||webpack 中配置 vue 组件的加载器|| 在 webpack 项目中使用 vue

    Vue 单文件组件 传统组件的问题和解决方案 1. 问题 1. 全局定义的组件必须保证组件的名称不重复 2. 字符串模板缺乏语法高亮,在 HTML 有多行的时候,需要用到丑陋的 \ 3. 不支持 CS ...

  3. Vue单文件组件与vue-loader

    单文件组件 Vue.js是一个渐进式的js框架,在使用wewbpack构建Vue项目时,可以使用一种新的构建模式: .vue单文件组件. 就是一个后缀名为.vue的文件,在webpack中使用vue- ...

  4. vue单文件props写法_详解Vue 单文件组件的三种写法

    详解Vue 单文件组件的三种写法 JS构造选项写法 export defaul { data, methods, ...} JS class写法 @Component export default c ...

  5. Vue单文件中引入背景图片时,四周有空白的问题

    Vue单文件中引入背景图片时,四周有空白的问题 问题背景 初始引入背景图 更新后的背景图设置 问题背景 近期公司有个管理系统前后端分离,但是前端人员不够,只能我们后端来凑,而在前端的开发过程中总是遇到 ...

  6. vue单文件自定义指令的封装

        vue单文件自定义指令的封装 第一步(封装一个js文件) // 暴露并配置指令 功能添加背景颜色 export const mycolor = {// 解析结构完成后自动运行钩子函数inser ...

  7. Vue单文件组件的使用

    项目搭建完成后需要分别对 main.js , index.html , App.vue 文件进行编写代码 index.html <!DOCTYPE html> <html lang= ...

  8. Vue单文件组件环境配置

    单文件组件不能直接运行使用,需要依赖node项目对其进行解析打包,在使用之前需要先进行环境配置 安装node版本管理工具nvm curl -o- https://raw.githubuserconte ...

  9. Vue单文件组件基础模板

    背景 相信大家在使用Vue开发项目时,基本都是以单文件组件的形式开发组件的,这种方式好处多多: 1.代码集中,便于开发.管理和维护 2.可复用性高,直接将vue文件拷贝到新项目中 我暂时就想到这两点, ...

  10. vue单文件props写法_vue开发中怎么按需加载需要被填入props和自定义事件的组件?...

    这种场景你可能需要把模态框包装成插件.vue插件开发和组件的区别 - 水秋玄​im.mkinit.com vue插件和组件的区别 使用插件的方式包装组件和直接注册全局组件其实是一样的,都是注册组件.不 ...

最新文章

  1. TMG 日志队列(Log Queue,扩展名为 .LLQ)持续增长或 TMG
  2. Leetcode::Balanced Binary Tree
  3. 【数学建模】MATLAB应用实战系列(九十二)-教你怎么挑对象,层次分析法应用案例(附MATLAB代码)
  4. python识别人脸多种属性_人脸检测及识别python实现系列(4)——卷积神经网络(CNN)入门...
  5. 发现 postman 自动生成接口调用代码的一个问题
  6. eclipse各个版本下载
  7. coursera机器学习笔记-多元线性回归,normal equation
  8. 电磁场边界条件方程汇总及简单记忆方法
  9. 如何快速搭建一个微服务架构?
  10. rocketmq存储消息mysql_消息中间件—RocketMQ消息存储(一)
  11. 【obs owt】屏幕采集创建DXGI
  12. Unity 角度与旋转(四元数与欧拉角)
  13. cpu多开测试软件,游戏多开CPU优化工具
  14. 伽卡他卡学生端找不到计算机,伽卡他卡学生端
  15. Unity角色扮演游戏集合
  16. php 00截断,文件上传之\00截断与文件包含之%00截断 文件包含漏洞详解 – jinglingshu的博客...
  17. 转:安迪·格鲁夫:你无法避免开会,但可以让它更有效率
  18. SWPUCTF web 部分题解
  19. 微信消息管理之被动回复用户消息
  20. 常用的testbench和matlab代码之读取和写入文本代码

热门文章

  1. HandyJSON库简介
  2. Java jdbc连接mysql 封装类
  3. 【内网】WebStorm搭建Vue环境
  4. 【深度学习】奇异值分解与Moore-Penrose伪逆
  5. 独立院校中计算机专业,计算机专业最热门的“实力派”十大院校
  6. 《快活帮》第一次作业:团队亮相
  7. 数据库mysql的join用法_join连接实例用法总结
  8. 实验04 顺序图与协作图
  9. 组件封装 - 面包屑组件
  10. 在APP中集成iAd Banner展示广告盈利