Vue的模块化开发初探

这篇具有很好参考价值的文章主要介绍了Vue的模块化开发初探。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vue的模块化开发初探

一 概述

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

二 步骤

2.1 下载必须模块

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

2.2 安装Live Server插件

在VSCode插件市场搜索Live Server并安装,如下图:
Vue的模块化开发初探,前端,vue.js,前端,javascript,vue3

2.3 编写代码

<!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中预览:
Vue的模块化开发初探,前端,vue.js,前端,javascript,vue3
运行结果:
Vue的模块化开发初探,前端,vue.js,前端,javascript,vue3

三 总结

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

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

function createApp(rootComponent: Component, rootProps?: object): App

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

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

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

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

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

function ref<T>(value: T): Ref<UnwrapRef<T>>

interface Ref<T> {
  value: T
}

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

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

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

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

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

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

四 参考资料

4.1 Vue官方文档文章来源地址https://www.toymoban.com/news/detail-846129.html

到了这里,关于Vue的模块化开发初探的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在Vue中进行单元测试?什么是Vue的模块化开发?

    在Vue中进行单元测试可以提高代码的可维护性和可读性,同时也能够帮助开发者更快地找到代码中的问题和潜在的错误。下面是一些在Vue中进行单元测试的步骤: 安装单元测试工具 首先需要安装一个单元测试工具,例如Jest或Mocha。可以使用npm或yarn进行安装。 创建测试文件

    2024年02月12日
    浏览(31)
  • 【前端模块化】JS模块化思想以及相关规范(CommonJS、ES module)

    1.模块化概念 随着前端应用日趋复杂,项目代码也大量膨胀,模块化就是一种最主流的代码组织方式, 一个模块就是一个实现特定功能的文件 ,它通过把我们的复杂代码按照功能的不同,划分为不同的模块单独维护的这种方式,去提高我们的开发效率,降低维护成本。要用

    2024年02月01日
    浏览(42)
  • 深入理解JavaScript模块化开发

    前言: 随着JavaScript应用程序的复杂性不断增加,模块化开发成为了一种必备的技术。通过将代码划分为模块,我们可以提高代码的可维护性、可重用性和可扩展性。在本文中,我们将深入探讨JavaScript模块化开发的概念、优势和不同的模块化方案。 模块化开发是将一个大型应

    2024年02月08日
    浏览(73)
  • 前端node.js入门-前端工程化与模块化

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 Node.js 入门  什么是 Node.js? 什么是前端工程化?   Node.js 为何能执行 JS?  fs 模块 - 读写文件  path 模块 - 路径处理 URL 中的端口号  常见的服务程序  Node.js 模块化 什

    2024年02月14日
    浏览(56)
  • js模块化开发

    ◼ 到底什么是模块化、模块化开发呢?  事实上模块化开发最终的目的是将程序划分成一个个小的结构;  这个结构中编写属于自己的逻辑代码,有自己的作用域,定义变量名词时不会影响到其他的结构;  这个结构可以将自己希望暴露的变量、函数、对象等导出给其结

    2024年02月13日
    浏览(41)
  • 【前端JS交互篇】函数、参数、返回值、闭包函数、递归函数、内存、模块化编程

    函数可以封装一些功能,可以供外部去重复的调用。所以,一般我们把函数叫做具有重复功能的代码块。 JavaScript 基础到高级 Canvas游戏开发 原生JavaScipt案例合集 JavaScript +DOM基础 假设饭店就是一个函数,饭店的功能就是做各种各样的菜,但是具体做什么菜,需要用户来点,用

    2024年02月15日
    浏览(45)
  • Vue待办事项(组件,模块化)

    //html页面代码 !DOCTYPE html html     head         meta charset=\\\"utf-8\\\"         title/title         style             * {                 padding: 0;                 margin: 0;             }             ul,             ol {                 list-style: none;     

    2024年01月21日
    浏览(42)
  • 第四章认识Node.js模块化开发

    Node.js系统模块 续上一篇文章第三章认识Node.js模块化开发-CSDN博客,这次继续来认识和总结以下node的常用模块开发 Node.js系统模块是指Node.js自带的一些模块,这些模块可以直接在Node.js中使用,无需安装其他包。以下是常用的Node.js系统模块: fs模块:用于处理文件系统。 htt

    2024年02月08日
    浏览(31)
  • 第三章认识Node.js模块化开发

    目录 认识Node.js 概述 作用 基本使用 Node.js的运行 Node.js的组成 Node.js的语法 Node.js全局对象 认识模块化开发 概述 场景 特点 模块成员的导入和导出 Node.js 模块化语法 导入模块 导出模块 ES6 模块化语法 导入模块 导出模块 项目 认识Node.js 概述 Node.js是一个 开源的、跨平台 的

    2024年02月06日
    浏览(38)
  • Node.js开发、CommondJS 、ES-Module模块化设计

    目录  Node.js是什么 基础使用 Node的REPL 全局变量  模块化设计 CommondJS规范  基础使用exports和module.exports require  CommondJS优缺点 AMD和CMD规范 ES_Module  基本使用方法 导出 导入  结合使用 默认导出 ES Module解析流程  Node与浏览器的对比  在浏览器中,HTML与CSS交给Blink处理,如果其

    2023年04月21日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包