vue适用多页面应用吗

vue适用多页面应用。vue在工程化开发的时候依赖于webpack,而webpack是将所有的资源整合到一块后形成一个html文件 一堆js文件;如果想使用vue实现多页面应用,就需要对它的依赖进行重新配置,即通过修改webpack配置来让脚手架具备构建多页应用的能力。

vue适用多页面应用吗

本教程操作环境:windows7系统、vue3版,DELL G3电脑。

我们知道vue可以快速开发web单页应用,而且官方为我们提供了自己的应用脚手架vue-cli,我们只需要下载脚手架,安装依赖后就可以启动vue应用雏形。

这得益与webpack的依赖追踪,各种资源后缀的loader,以及相关webpack插件的强大功能。

然而有些时候,我们有多页面的开发需求,在这种情况下,我们可以为多页面构建相应的多个应用,比如通过vue-cli生成多个应用目录,但是这样一方面会多出很多重复的构建代码和样板代码,另外也会破坏应用的统一性,不便于维护。我们可以在vue-cli的基础上通过修改webpack配置来让脚手架具备构建多页应用的能力。

立即学习“前端免费学习笔记(深入)”;

vue在工程化开发的时候依赖于 webpack ,而webpack是将所有的资源整合到一块后形成一个html文件 一堆 js文件, 如果将vue实现多页面应用,就需要对他的依赖进行重新配置,也就是修改webpack的配置文件.

下面主要详述Vue的多页面应用开发(MPA)

具体实现步骤

1.1、需要修改的配置文件

1、进入uildwebpack.base.conf.js目录下,在module.exports的域里,找到entry,在那里配置添加多个入口:

1.png

注意绿色框的修改和对应。

  entry: {    app: './src/main.js',    one: './src/pages/one.js',    two: './src/pages/two.js'  }

登录后复制

2、对开发环境run dev里进行修改,打开uildwebpack.dev.conf.js文件,在module.exports那里找到plugins,下面写法如下:

2.png

    new HtmlWebpackPlugin({      filename: 'index.html',      template: 'index.html',      inject: true,      chunks: ['app']    }),    new HtmlWebpackPlugin({      filename: 'one.html',      template: 'one.html',      inject: true,      chunks: ['one']    }),    new HtmlWebpackPlugin({      filename: 'two.html',      template: 'two.html',      inject: true,      chunks: ['two']    }),

登录后复制

说明:这里的配置比较重要 ,如果没写好的 在打包的时候就会报错了, 在chunks那里的app指的是webpack.base.conf.js的 entry 那里与之对应的变量名。chunks的作用是每次编译、运行时每一个入口都会对应一个entry,如果没写则引入所有页面的资源。也就是没有改项目配置前形成的单页应用。

3、之后就对run build也就是编译环境进行配置。首先打开configindex.js文件,在build里加入这个

3.png

    index: path.resolve(__dirname, '../dist/index.html'),    one: path.resolve(__dirname, '../dist/one.html'),    two: path.resolve(__dirname, '../dist/two.html'),

登录后复制

说明:这里也就是打包之后dist文件夹中形成的 html。

4、然后打开/build/webpack.prod.conf.js文件,在plugins那里找到HTMLWebpackPlugin,添加

4.png

 new HtmlWebpackPlugin({      filename: config.build.index,      template: 'index.html',      inject: true,      minify: {        removeComments: true,        collapseWhitespace: true,        removeAttributeQuotes: true      },      chunksSortMode: 'dependency',      chunks: ['manifest', 'vendor', 'app']    }),    new HtmlWebpackPlugin({      filename: config.build.one,      template: 'one.html',      inject: true,      minify: {        removeComments: true,        collapseWhitespace: true,        removeAttributeQuotes: true      },      chunksSortMode: 'dependency',      chunks: ['manifest', 'vendor', 'one']    }),    new HtmlWebpackPlugin({      filename: config.build.two,      template: 'two.html',      inject: true,      minify: {        removeComments: true,        collapseWhitespace: true,        removeAttributeQuotes: true      },      chunksSortMode: 'dependency',      chunks: ['manifest', 'vendor', 'two']    }),

登录后复制

说明:其中filename引用的是configindex.js里的build,每个页面都要配置一个chunks,不然会加载所有页面的资源。

1.2、我的目录

5.png

2.3、需要新建的几个文件的代码

1、one.js文件代码:(我这里是举例),two.js和这个代码类似,注意将“one”替换成“two”即可。

import Vue from 'vue'import one from './one.vue'Vue.config.productionTip = false/* eslint-disable no-new */new Vue({    el: '#one',    render: h => h(one)})

登录后复制

2、one.vue文件代码:(我这里是举例),two.vue和这个代码类似,注意将“one”替换成“two”即可。

    

{{msg}}

export default { name: 'one', data() { return { msg: 'I am one' } } }

登录后复制

3、one.html文件代码:(我这里是举例),two.vue和这个代码类似,注意将“one”替换成“two”即可。

            one-page    

登录后复制

注意!

中id的修改,之前忘记修改,页面空白无内容,打开控制台可以看到div标签中并无内容,且id是app我才反应过来,修改后就好了。

【相关推荐:vuejs视频教程、具体实现步骤

1.1、需要修改的配置文件

1、进入uildwebpack.base.conf.js目录下,在module.exports的域里,找到entry,在那里配置添加多个入口:

以上就是vue适用多页面应用吗的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2923951.html

(0)
上一篇 2025年3月11日 18:52:27
下一篇 2025年2月26日 11:42:26

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 怎么查询当前vue的版本

    查询当前vue版本的两种方法:1、在cmd控制台内,执行“npm list vue”命令查询版本,输出结果就是vue的版本号信息;2、在项目中找到并打开package.json文件,查找“dependencies”项即可看到vue的版本信息…

    2025年3月11日
    200
  • vue运用了哪些模式

    vue运用的设计模式:1、单例模式,确保一个类只有一个实例对象,并提供一个全局访问点供其访问。2、工厂模式,是用来创建对象的一种模式,不必暴露构造函数的具体逻辑,而是将逻辑封装在一个个函数之中。3、装饰器模式,允许向现有的函数添加新的功能,…

    2025年3月11日
    200
  • vue组件中data不能是函数吗

    不是,vue组件中data必须是一个函数。vue中组件是用来复用的,为了防止data复用,将其定义为函数。vue组件中的data数据都应该是相互隔离,互不影响的,组件每复用一次,data数据就应该被复制一次,之后,当某一处复用的地方组件内d…

    2025年3月11日 编程技术
    200
  • vue页面有哪些组成

    vue页面有3个组成部分:1、模板(template),即template标签包裹的界面展示代码(HTML代码);2、script标签包裹的业务实现代码(js脚本代码);3、style标签包裹的界面样式代码(css样式代码)。 本教程操作环…

    2025年3月11日
    200
  • vue组件由几部分组成

    vue组件由3部分组成:1、template,设置组件的模板结构;2、script,设置组件的JavaScript行为;3、style,设置组件的样式。每个组件中必须包含template模板结构,而script行为和style样式是可选的组…

    2025年3月11日
    200
  • vue vw是什么

    在vue中,vw是一种视口单位,是根据窗口的宽度,分成100等份,100vw就表示满宽,50vw就表示一半宽;vw始终是针对窗口的宽。vh和vw单位主要用于页面视口大小布局,可以根据电脑浏览器自适应,在页面布局上更加方便简单。 本教程操作环…

    2025年3月11日
    200
  • vue模板预编译是什么

    当vue进行打包时,会直接把组件中的模板转换为render函数,这叫做模板预编译。模板预编译的好处:运行时不再需要编译模板,提高了运行效率;且打包结果中不再需要vue的编译代码,减少了打包体积。 本教程操作环境:windows7系统、vue…

    2025年3月11日
    200
  • vue webpack可打包哪些文件

    在vue中,webpack可以将js、css、图片、json等文件打包为合适的格式,以供浏览器使用;在webpack中js、css、图片、json等文件类型都可以被当做模块来使用。webpack中各种模块资源可打包合并成一个或多个包,并且在…

    2025年3月11日 编程技术
    200
  • vue dom是什么意思啊

    dom是一种文档对象模型,同时也是用于html编程的接口,通过dom来操作页面中的元素。DOM是HTML文档的内存中对象表示,它提供了使用JavaScript与网页交互的方式。DOM是节点的层次结构(或树),其中document节点作为根。…

    2025年3月11日
    200
  • vue自定义组件的注册方式有几种

    vue自定义组件的注册方式有3种:1、局部注册,在App的components中注册自定义组件。2、全局注册,在“main.js”中注册(挂载)自定义组件。3、在“src/plugin”目录下建一个和组件名称一致的文件夹,然后将自定义组件文…

    2025年3月11日 编程技术
    200

发表回复

登录后才能评论