Vue-cli3多页面配置详解_vue.js

来源:脚本之家  责任编辑:小易  

先安装Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。 要是你已经全局安装了旧

Vue-cli3发布已经好长时间了,笔者也在一直使用,由于公司业务需要要使用多页面配置,于是花时间研究了一下Vue-cli3如何配置多页面。由于Vue-cli3相比之前的版本做了很大的改动,在研究过程中也遇到一些问题。

请代码截图

对于Vue-cli3创建项目这里就不做太多的赘述了,毕竟不属于本文内容,有关相关博客也有很多,大家可以自行Google一下就好了。

用scoped请不要直接用标签,建议用class或者id。不然会影响渲染速度请采纳

多页面应用(mpa)与单页面应用(spa)优缺点

《一则》,上联:江山待有才人出,下联:不可沽名学霸王。《二则》,上联:江山待有才人出,下联:一代更比一代强。《三则》,上联:江山待有才人出,下联:青出于蓝胜于蓝。《四则》,上联:江山待有才人出,下联:长江后浪推前浪。《五则》,上联:江山待有才人出,下联:强中自有强中手。《六则》,上联:江山待有才人出,下联:三人行必有我师。《七则》,上联:江山待有才人出,下联:多娇英雄传美名。

在项目中我们用到的大多数都是单页面应用(spa),对于多页面可能用到的比较少一些,具体还是要根据具体的业务情况,去觉得自己的技术选型。具体应该如何应用可以酌情考虑。

这里不说什么道德问题,也暂且不论宠物狗不宠物狗,只说卫生与健康问题。现在说正题,就说狗肉的来源吧,大多数饭桌上的都是偷来的狗,没有任何检疫,没有任何措施保证来源的卫生问题,也许有人说某专门养狗屠狗的企业,可是讲究降低成本的饭馆老板们会那么大方负责的给我们吃那么贵的狗肉么?也许有人说猪肉也脏,可是毕竟猪肉有检疫啊。如果大家真是对狗肉不能免疫的话,那就只好希望国家能尽快为狗肉立法检疫,保证大家健康,否则大家为了自己健康就尽量别吃了吧。

单页面应用(spa)

现在的小学生哪能望啊,太疯狂了。早恋早恋指的是青春期青少年建立恋爱关系。“早恋”一词只在中国内地被广泛使用。早恋一般指未进入大学阶段的青少年之间发生的爱情,特别是在校的中小学生为多。经过二十年在中国的调查表明,在中学阶段发生过感情的人很多。而大多数都是暗恋、单恋(单相思)。只有相互有好感,才能发展成为早恋。早恋行为是青少年在性生理发育的基础上,也是心理转化为行为的实践。早恋,按字面意思来理解,就是过早的恋爱。严格来说,是男女双方都向对方告白,才能称之为恋爱。如果没有过告白行为,就不能称之为恋爱,不能称之为恋爱就更不能称之为早恋。只有作了告白行为(情书,直接告白等)才能算作恋爱,算作恋爱之后,才

单页面:单页面,简单的理解就是一种结构布局很简单的静态页面。 ——节选自百度百科

霍金对于世界的贡献有目共睹,成为了全人类的瑰宝,霍金的每句话都能够引起全球的热议,之前霍金预言过地球毁灭事件,霍金预言地球将在两百年之内毁灭,人类只身下数十年的时间来离开地球。而霍金预言中国可能成为外星人的目标。霍金预言2215年地球毁灭霍金预言指的是著名物理学家史蒂芬·霍金在2011年接受美国著名知识分子视频共享网站BigThink访谈时,称地球将在200年内毁灭,而人类要想继续存活只有一条路:移民外星球。此消息一出,引起坊间热议。有学者表示,霍金之说更多的不是建立在相关科学依据上,而应该理解为“霍大师对人类的一个忠告”。也有网友认为是“闲扯事”,但大部分的网友“末日情绪”被再次点燃。另外,

通俗的的来讲单页面就是只有一个html页面,所有跳转方式都是通过组件切换完成的。正如我们平时所用的Vue一样,但是Vue同样借助了Vue-Router完成了对页面(组件)的切换来实现页面之间的跳转(即组件间的切换)。

单页面的到来给前端带来很大的好处,由于资源只需要加载所以页面之间跳转流畅,实现了组件化的的开发,组件的重复利用,大大增加了开发的速度以及降低了项目的维护成本。

单页面应用既然有诸多的好处,当然同样也会带来很多的一些弊端,由于单页面应用在初次访问时需要加载全部的资源所以,首屏的加载速度会变得有一些慢。

多页面应用(mpa)

多页面:整个项目有多个html,所有跳转方式都是页面之间相互跳转的。

多页面与与传统的开发类似,除当前页面的路由以外都是使用a标签进行跳转的。当前路由仍然是使用Vue-Router进行跳转。

多页面应用由于只会加载当前访问页面所需要的资源,所以首屏加载速度很快,只加载本页所使用的css、js,而且多页面应用相比单页面应用SEO要比单页面应用要好很多的。

多页面由于只会获取当前页面所需要的资源,那么这样在进行页面之间跳转的时候导致会重新获取和加载资源,导致页面之间的跳转回变慢一些。

项目搭建

首先使用Vue-cli3脚手架创建一个Vue项目,创建完项目之后在根目录中创建vue.config.js,用来增加Vue的webpack配置项。

let glob = require('glob'); //配置pages多页面获取当前文件夹下的html和js function getEntry(globPath) { let entries = {}, tmp, htmls = {}; // 读取src/pages/**/底下所有的html文件 glob.sync(globPath+'html').forEach(function(entry) { tmp = entry.split('/').splice(-3); htmls[tmp[1]] = entry }) // 读取src/pages/**/底下所有的js文件 glob.sync(globPath+'ts').forEach(function(entry) { tmp = entry.split('/').splice(-3); entries[tmp[1]] = { entry, // 当前目录没有有html则以共用的public/index.html作为模板 template: htmls[tmp[1]] ? htmls[tmp[1]] : 'index.html', // 以文件夹名称.html作为访问地址 filename:tmp[1] + '.html' }; }); return entries; }; let htmls = getEntry('./src/views/**/*.'); module.exports = { pages:htmls, publicPath: './', // 解决打包之后静态文件路径404的问题 outputDir: 'output', // 打包后的文件夹名称,默认dist devServer: { open: true, // npm run serve 自动打开浏览器 index: '/index.html' // 默认启动页面 }, productionSourceMap: false };

创建好vue.config.js之后,删除App.vue和main.ts(main.js)文件,并在views文件夹下创建两个新的文件夹index和about,可以使用其他名称。这里的文件夹用来分散多个页面内容。

在index文件夹下面创建index.html、index.vue、main.ts,about文件也是如此。

index.html

<!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"> <link rel="icon" href="<%= BASE_URL %>favicon.ico" rel="external nofollow" > <title><%= htmlWebpackPlugin.options.title %></title> </head> <body> <noscript> <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> <div id="app"></div> <!-- built files will be auto injected --> </body> </html>

index.vue

<template> <div id="app"> <a href="about.html" rel="external nofollow" rel="external nofollow" >About</a> <h1>Index</h1> </div> </template> <script> export default { name: 'page2' } </script> <style> </style>

main.ts

import Vue from 'vue' import App from './index.vue' Vue.config.productionTip = false new Vue({ render: h => h(App) }).$mount('#app')

仔细看代码代码貌似与之前的单页面应用并没有任何区别,但是有一点需要注意的是,一旦需要跳转到另一个页面的时候,需要使用a标签进行跳转<a href="about.html" rel="external nofollow" rel="external nofollow" >About</a>。

爬坑内容

    若想在多页面中使用Vue-Router也是可以的,只需要在对应的页面中添加Router的实例就可以了,需要注意的是一定要当前页面Router的实例只包含当前页面的路由。 在使用store的时候需要注意的是由于当前store只与当前页面的实例中,当发生页面跳转之后,则store数据无法进行共享,但是在当前页面中使用Router跳转的路由,仍然是可以共享store的数据的。

总结

其实无论多页面还是单页面其实都是一种开发形式,我们只需要针对不同的需求和项目的复杂程度采取对应的措施,即技术选型,无论是使用哪种都有其利弊,没有必要一味的使用某一种模式,然而这样可能限制了我们的开发思维。

到此这篇关于Vue-cli3多页面配置详解的文章就介绍到这了,更多相关Vue-cli3 多页面内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

vue-cli3.4怎么配置全局jquery?碰到$就报错了,

看这个链接,vue配置jquery

vue安装jquery

vue-cli3引入jquery

希望可以帮到你,望采纳~

vue-cli3项目中console.log()为什么会有警告

因为你创建项目的时候使用了eslint,有一条是 no-console, 是不允许有console出现的,你可以在配置文件.eslintrc.js里把这条规则关掉

或者关掉eslint代码检测:在vue.config.js里面添加lintOnSave: false 

更多追问追答追问

这样吗?我也重启cli了,还是警告啊

追答你重启一下电脑试试,注意端口号是8081了,你上次启动的端口号没有杀掉追问好的非常感谢

怎么安装 vue-cli3?

安装步骤:

1、cmd打开命令行窗口

2、输入cnpm install vue-cli -g,然后回车等待(想在哪个目录建立vue项目就要在进入到对应目录再输入命令)

3、安装结束后输入vue 如果显示版本号继续下一步操作

4、运行vue init webpack demo(注:项目名称)回车

5、显示Project nanme 目录名 回车 project description 后面可以写上描述,或者直接回车

Author 后面可以写作者也可以回车

6、Install vue-router? 选择Y

7、User ESLint to lint your code? 选Y

8、Setup unit tests with Karma + Mocha? 问的是否要测试 选n

9、Setup e2e tests with Nightwatch? 选n

10、这个时候在你创建的目录下就有你的目录了,然后cd 你的目录名进去cnpm install回车等待,这一步是安装依赖的,安装完成后会在项目文件夹下自动生成node-module文件来存放安装的依赖文件,如果这个文件夹没有那么项目是没办法跑

起来的

11、创建结束后在创建目录里面按住shift+右键 选择 在此处打开命令窗口 输入npm run dev启动应用,启动成功它会自动打开一个vue页面

12、每次这样启动是很麻烦的,用开发工具加载整个项目,里面有个package.json,它我整个项目的配置和信息的描述,里面有个scripts,这是定义的一些脚本,刚才用的就是里面的dev,它会执行后面的东西,就是用node跑一个JSON文件

13、在项目中,右击package.json选择show npm scripts,显示npm后,双击命令即可

main.js的介绍

el是挂载点,router是路由

vue-cli3是什么?

vue脚手架3.0版本 可视化编程用户界面

多看看官方文档

  • 本文相关:
  • vue-cli3.0实现一个多页面应用的历奇经历记录总结
  • 基于vue-cli3多页面开发apicloud应用的教程详解
  • vue中对象数组去重的实现
  • 浅谈vue的响应式原理
  • vue.js自定义指令的用法与实例解析
  • vue-cli脚手架config目录下index.js配置文件的方法
  • vue 中固定导航栏的实例代码
  • vue使用element-ui的el-input监听不了回车事件的解决方法
  • 从零开始封装自己的自定义vue组件
  • vue.js语法及常用指令
  • vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
  • vue.js与后台数据交互的实例讲解
  • vue-cli3.4怎么配置全局jquery?碰到$就报错了,
  • vue-cli3项目中console.log()为什么会有警告
  • 怎么安装 vue-cli3?
  • vue-cli3是什么?
  • 三人行慕课Vue-cli3.x项目实战视频教程怎么样?
  • 用vuecli3创建大型可兼容项目需要安装得webpack插件有哪些?
  • vue-cli3版本里使用el-select、el-option和el-button,为什么其他行和...
  • vue cli3搭建的项目,父组件加scoped后样式在子组件还生效,怎么使样式只在当前组件生效?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全yui.ext相关prototypejqueryangularjsjsonlib_jsjs面向对象extjsmootoolsseajsdojovue.jsbackbone.js其它首页javascriptjavascript类库vue.jsvue-cli3.0实现一个多页面应用的历奇经历记录总结基于vue-cli3多页面开发apicloud应用的教程详解vue中对象数组去重的实现浅谈vue的响应式原理vue.js自定义指令的用法与实例解析vue 中固定导航栏的实例代码vue使用element-ui的el-input监听不了回车事件的解决方法从零开始封装自己的自定义vue组件vue.js语法及常用指令vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据vue.js与后台数据交互的实例讲解vue引用js文件的多种方式(推荐)简单理解vue中props属性vue元素的隐藏和显示(v-show指令vue.js常用指令汇总(v-if、v-fovue 进阶教程之v-model详解vue之父子组件间通信实例讲解(prvue props用法详解(小结)使用vue实现图片上传的三种方式vue.js实战之利用vue-router实现vue.js中的图片引用路径的方式每天学点vue源码之vm.$mount挂载函数基于vue2的table分页组件实现方法vue 如何添加全局函数或全局变量以及单页vue服务端渲染缓存应用详解vue中动态绑定表单元素的属性方法详解vue父子组件间传值(props)详解vue 全局引入bass.scss 处理方案vue中img的src是动态渲染时不显示的解决对类vue的mvvm前端库的实现代码vue-cli如何引入bootstrap工具的方法
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved