Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vue的模块化开发初探

Vue的模块化开发初探

作者头像
耕耘实录
发布于 2024-05-24 07:29:58
发布于 2024-05-24 07:29:58
14200
代码可运行
举报
文章被收录于专栏:耕耘实录耕耘实录
运行总次数:0
代码可运行

Vue的模块化开发初探

一 概述

Vue是一个渐进式JavaScript框架,可以按需引入部分功能,而不必全量引入整个框架。

二 步骤

2.1 下载必须模块

在浏览器输入:https://unpkg.com/vue@3/dist/vue.esm-browser.js,右键另存为,保存到demo.html文件同级目录下。

2.2 安装Live Server插件

在VSCode插件市场搜索Live Server并安装,如下图:

安装 Live Server
安装 Live Server
2.3 编写代码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Demo</title>
</head>
<body>
    <div id="app">
        {{ msg }}
        <hr/>
        {{ web }}
        <hr/>
        {{ number }}
    </div>
    <script type="module">
        import { createApp, reactive, ref } from "./vue.esm-browser.js"
         createApp(
            {
                setup() {
                    const number = ref(2000);
                    const web = reactive(
                        {
                            title: "demo",
                            url: "demo.com"
                        }
                    );
                    return {
                        msg: "success",
                        web,
                        number
                    };
                }
            }
        ).mount("#app")
    </script>
</body>
</html>
2.4 运行结果

在Live Server中预览:

运行结果:

三 总结

与传统开发方式不一样的是,在script标签引入了type属性,具体为: <script type="module">,在标签内使用import导入了相关函数。

createApp是vue的启动函数,返回一个应用实例。原型为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function createApp(rootComponent: Component, rootProps?: object): App

第一个参数是根组件。第二个参数可选,它是要传递给根组件的 props。

setup() 钩子是在组件中使用组合式 API 的入口,通常只在以下情况下使用:

  • 需要在非单文件组件中使用组合式 API 时;
  • 需要在基于选项式 API 的组件中集成基于组合式 API 的代码时。

注意: 对于结合单文件组件使用的组合式 API,推荐通过 <script setup> 以获得更加简洁及符合人体工程学的语法。

**ref()**接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性 .value。原型如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function ref<T>(value: T): Ref<UnwrapRef<T>>

interface Ref<T> {
  value: T
}

ref 对象是可更改的,也就是说你可以为 .value 赋予新的值。它也是响应式的,即所有对.value的操作都将被追踪,并且写操作会触发与之相关的副作用。

如果将一个对象赋值给 ref,那么这个对象将通过 reactive() 转为具有深层次响应式的对象。这也意味着如果对象中包含了嵌套的 ref,它们将被深层地解包。若要避免这种深层次的转换,请使用 shallowRef() 来替代。

reactive()​返回一个对象的响应式代理。原型为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function reactive<T extends object>(target: T): UnwrapNestedRefs<T>
  • 响应式转换是“深层”的:它会影响到所有嵌套的属性。一个响应式对象也将深层地解包任何 ref 属性,同时保持响应性;
  • 值得注意的是,当访问到某个响应式数组或 Map 这样的原生集合类型中的 ref 元素时,不会执行 ref 的解包;
  • 若要避免深层响应式转换,只想保留对这个对象顶层次访问的响应性,请使用 shallowReactive() 作替代;
  • 返回的对象以及其中嵌套的对象都会通过 ES Proxy 包裹,因此不等于源对象,建议只使用响应式代理,避免使用原始对象。

app.mount() 将应用实例挂载在一个容器元素中。原型为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface App {
  mount(rootContainer: Element | string): ComponentPublicInstance
}
  • 参数可以是一个实际的 DOM 元素或一个 CSS 选择器 (使用第一个匹配到的元素)。返回根组件的实例;
  • 如果该组件有模板或定义了渲染函数,它将替换容器内所有现存的 DOM 节点。否则在运行时编译器可用的情况下,容器元素的 innerHTML 将被用作模板;
  • 在 SSR 激活模式下,它将激活容器内现有的 DOM 节点。如果出现了激活不匹配,那么现有的 DOM 节点将会被修改以匹配客户端的实际渲染结果;
  • 对于每个应用实例,mount() 仅能调用一次。

四 参考资料

4.1 Vue官方文档

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
再遇vue之vue3新特性
首先说明一下,vue2和vue3是Vue.js的两个主要版本。目前vue3已经更新到3.3.4的版本了
用户6297767
2023/11/21
5470
再遇vue之vue3新特性
Vue学习笔记(一)
耕耘实录
2024/05/24
780
Vue学习笔记(一)
Vue 3.0 有哪些新特性值得我们提前了解
Vue.js 作者兼核心开发者尤雨溪宣布 Vue 3.0 进入 Beta 阶段。
Vam的金豆之路
2021/11/30
6910
Vue 3.0 有哪些新特性值得我们提前了解
掌握这些vue内容,让你在提升代码复用上不再纠结!
前端工程化的最终目的都是为了能够更好地维护代码。代码复用是提升效率和可维护性的利器。 vue 中针对不同场景和业务情况,提供了各种方式。全面了解这些内容,可以在开发过程中让你得心应手!
奋飛
2023/07/10
2760
掌握这些vue内容,让你在提升代码复用上不再纠结!
推荐:非常详细的vue3.0开发笔记(7k字)
当将当前的技术栈从Vue 2.0升级到Vue 3.0时,有许多值得考虑的理由。以下是10个升级到Vue 3.0的理由:
微芒不朽
2023/08/21
5190
推荐:非常详细的vue3.0开发笔记(7k字)
最全系列的vue3入门教程『图文并茂』
Vue 3 是一个流行的开源JavaScript框架,用于构建用户界面和单页面应用。它带来了许多新特性和改进,包括更好的性能、更小的打包大小、更好的TypeScript支持、全新的组合式 API,以及一些新的内置组件。
linwu
2023/07/27
5.1K0
最全系列的vue3入门教程『图文并茂』
探索 Vue 3 中的 ref:深入理解与实战应用
在前端开发的世界中,Vue.js 已经成为了许多开发者的首选框架。它以其简洁、灵活和高效而闻名,而 Vue 3 引入的新特性 ref 更是让这一切更加得心应手。本文将深入探讨 Vue 3 中的 ref,从基本概念到深层原理,以及实际应用中的各种技巧和注意事项。
繁依Fanyi
2024/06/29
8980
vue3知识点:自定义hook函数
答案:请看官方文档: https://v3.cn.vuejs.org/guide/composition-api-introduction.html
刘大猫
2024/10/31
1360
Vue3.0 beta版学习笔记
https://github.com/vuejs/vue-next
用户7572539
2020/08/26
7190
vue3知识点:readonly 与 shallowReadonly
<font color='red'>如果使用readonly包裹的person对象的所有属性数据</font>都只读不可需改,即name、age、salary都只读无法修改。
刘大猫
2024/10/31
920
Vue 3.0 源码分析-数据侦测
2020年前端大事件之一,Vue 3.0终于正式发布了。作为一个大的版本更新,Vue 3 与 Vue 2相比,实现原理,使用方式等均有着不小的改动。本文主要会介绍讲述二块内容,分别是Vue 3.0 的简要介绍,Vue 3.0 数据侦测源码分析。小伙伴们可以根据自己的需求,查看对应的内容,也欢迎各位一起探讨,一起学习。 Vue 3.0 简要介绍 Vue 3 的 “前世今生” 2016年,Vue 2.0 正式发布,时至今日,已经过去了四年的时光。诚然,在这四年中,Vue 2的社区建设一直呈现出一副蓬勃向上的态
QQ音乐前端团队
2021/01/11
7510
Vue3 对比Vue2,你找到哪些变化?
希望本篇文章能帮你加深对 Vue 的理解,能信誓旦旦地说自己熟练Vue2/3。除此之外,也希望路过的朋友可以帮助我查漏补缺🤞。 内容混杂用法 + 原理 + 使用小心得,建议收藏,慢慢看。 区别 生命周期的变化 整体来看,变化不大,只是名字大部分需要 + on,功能上类似。使用上 Vue3 组合式 API 需要先引入;Vue2 选项 API 则可直接调用,如下所示。 // vue3 <script setup> import { onMounted } from 'vue' onMounted(
@超人
2022/04/14
1.1K0
Vue3学习笔记
①性能的提升 打包大小减少41%、初次渲染快55%,更新渲染快133%,内存减少54%…… ②源码的升级
玖柒的小窝
2021/09/29
8700
Vue3学习笔记
Vue3 中有哪些值得深究的知识点?
众所周知,前端技术一直更新很快,这不 vue3 也问世这么久了,今天就来给大家分享下vue3中值得注意的知识点。喜欢的话建议收藏,点个关注!
玖柒的小窝
2021/12/07
1.1K0
Vue3 中有哪些值得深究的知识点?
Vue3快速入门——生命周期详解及代码案例
在 Vue 3 中,组件的生命周期是一个重要的概念,它描述了一个 Vue 组件从创建到销毁的过程中所经历的各个阶段。这些阶段包括组件的创建、挂载、更新和销毁等,Vue 3 提供了相应的钩子函数,允许我们在这些关键时刻执行自定义的逻辑。
小明爱吃火锅
2024/04/24
1.5K0
【Vue #1】Vue.js 介绍&声明式渲染&数据响应式
Vue.js(发音如 “View”)由 尤雨溪(Evan You)于 2014年 发布,是一个用于 构建用户界面 的 渐进式 JavaScript 框架。
IsLand1314
2025/04/08
1730
【Vue #1】Vue.js 介绍&声明式渲染&数据响应式
一文看完vue3的变化之处
之前在非组件的情况下创建实例可以使用对象,但是现在所有情况下都只能使用一个返回对象的函数。
街角小林
2022/06/15
3.1K0
Vue3 快速入门及巩固基础
Vue 是一款用于构建用户界面的 JavaScript 框架,它基于 HTML,CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效的开发用户界面
很酷的站长
2022/12/04
3.9K0
Vue3 快速入门及巩固基础
实用的VUE系列——快速使用 vue ,就要鄙视他,理解他,成为他
声明:本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究!
用户7413032
2024/05/07
1150
实用的VUE系列——快速使用 vue ,就要鄙视他,理解他,成为他
2024重大更新!Blog.Admin更新Vue3.0
BCVP社区自从成立以来,一直致力于在国内推广以ASP.NETCore+VUE为核心的前后端分离架构的技术传播,从几年前我自己开发代码,到现在成立了BCVP开发组的五名成员,以“学以致用,学以分享”为目的,对开源的项目也一直从未收费,也一直从未断更,其实我们每个人都是开源社区的既得利益者,只是总需要一批人去把更多的内容继续进行分享升华,BCVP开发者社区成员就是这样一批人。
老张的哲学
2024/02/22
3650
2024重大更新!Blog.Admin更新Vue3.0
推荐阅读
相关推荐
再遇vue之vue3新特性
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验