首页 > 【2】Vue项目引用Element UI(饿了么框架)菜单导航条初期配置

【2】Vue项目引用Element UI(饿了么框架)菜单导航条初期配置

首先要理解Vue项目加载顺序:

index.html → main.js → App.vue → nav.json→ routes.js → page1.vue

index.html建议加入样式


① main.js

//【基础配置】----------------------------------------------------------------
//引入Vue框架(设置为false以阻止vue在启动时生成生产提示)
import Vue from 'vue';
Vue.config.productionTip = false;
//导入路由【安装方法】cnpm i vue-router
import VueRouter from 'vue-router';
Vue.use(VueRouter);
import routes from './routes';
const router = new VueRouter({// mode: 'history', // 这里存在一个弊端,如果要去掉路由的#号,后端需要配合配置,反正如果不是非得要做支付建议不用这个参数配置,参考文档:https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E5%90%8E%E7%AB%AF%E9%85%8D%E7%BD%AE%E4%BE%8B%E5%AD%90// base: '/projects/rs/', // 这个位置写项目在服务器上面从根目录开始算的绝对路径,当设置mode: 'history'的时候才有效scrollBehavior: (to, from, savedPosition) => {if (to.hash) return { selector: to.hash }; //跳转到锚点return savedPosition || { x: 0, y: 0 }; //回归历史滚动位置},routes
});
router.beforeEach((to, from, next) => {document.title = to.meta.title || ''; //路由发生变化修改页面titlenext()
})//【第三方插件】----------------------------------------------------------------
//引入饿了么UI框架【安装方法】cnpm i element-ui -S
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);//引入es6-promise 安装cnpm i es6-promise --save-dev
import promise from 'es6-promise'; //使用axios对安卓或者ios低版本兼容性处理
promise.polyfill(); //注意需要在aixo之前注册//引入Axios【安装方法】cnpm i axios -S
import axios from 'axios';
Vue.prototype.$axios = axios;//引入Echarts【安装方法】cnpm i echarts -S
import echarts from 'echarts';
Vue.prototype.$echarts = echarts;//【公共方法】----------------------------------------------------------------
import sg from "./js/sg";
Vue.prototype.$g= sg;//【公共变量】----------------------------------------------------------------
import global from "./js/global";
Vue.prototype.$global = global;//【初始化加载】----------------------------------------------------------------
import App from './App';
new Vue({ el: '#app', render: h => h(App), router });

② app.vue


③ 在static/json/创建nav.json文件

{"status":"SUCCESS","message":"加载失败","data":[{"label":"首页","path":"/page1"},{"label":"栏目2","path":"/page2"},{"label":"栏目3","path":"/page3"},{"label":"栏目4","path":"/page4"}]
}

④ 在src/下创建routes.js

export default [{ path: "/", redirect: "/page1" },// 当设置了mode: 'history'的时候,这个地方最好是不要用redirect,注释掉该路由,在App.vue加入created(){this.$router.push('/home');}, 否则会导致build之后刷新找不到页面{path: "/page1",meta: { title: '首页浏览器标题' },component: () =>import ('./vue/page1'), //在有嵌套路由的页面的template根节点加入用于显示二级路由页面内容//嵌套路由(二级页面),注意!path不要在开头加"/",否则会认为是根路径导致报错children: [{path: "page2",meta: { title: 'page2浏览器标题' },component: () =>import ('./vue/page2')},{path: "page3",meta: { title: 'page3浏览器标题' },component: () =>import ('./vue/page3')},{path: "page4",meta: { title: 'page4浏览器标题' },meta: {title: 'page2浏览器标题'},component: () =>import ('./vue/page4')}]},{path: "/page2",meta: { title: 'page2浏览器标题' },component: () =>import ('./vue/page2')},{path: "/page3",meta: { title: 'page3浏览器标题' },component: () =>import ('./vue/page3')},{path: "/page4",meta: { title: 'page4浏览器标题' },component: () =>import ('./vue/page4')},{path: "*",meta: { title: '该页面无法显示!' },component: () =>import ('./vue/notFound')} //404页面,一定要写在最后
];

温馨提示:

采用import按需加载的方式,如果出现import这儿报错,就需要安装babel插件,vue-router官网有一段提示:

如果您使用的是Babel,您将需要添加syntax-dynamic-import插件才能使Babel可以正确地解析语法。

【安装方法】cnpm i babel-plugin-syntax-dynamic-import -D

然后在webpack的js的loader部分修改为:

{

    test:/.js$/,

    loader:'babel-loader',

    options:{

        plugins:['syntax-dynamic-import']

    }

}

在src/vue/下创建page1.vue

----------------------------------------------------------------

如果使用axios提示跨域报错,【解决方法】找到config/index.js,在dev下的assetsPublicPath后面加入

proxyTable: {'/api': {target: 'http://127.0.0.1:8080', // 后台访问地址changeOrigin: true,pathRewrite: {'^/api': ''}}
},

 【扩展阅读】

生成项目→npm run build Vue的项目,如何修改相对路径配置

更多相关:

  • 有一天,我写了一个自信满满的自定义组件myComponent,在多个页面import使用了,结果控制台给我来这个 我特么裤子都脱了,你给我来这个提示是几个意思 仔细一看 The Component 'MyComponentComponent' is declared by more than one NgModule...

  • 创建一个带路由的项目,依次执行下面每行代码 ng n RouingApp --routingcd RouingAppng g c components/firstng g c components/secondng g m components/second --routing    代码拷贝: import {NgModul...

  •       cnpm install vue-quill-editor cnpm install quill-image-drop-module cnpm install quill-image-resize-module 执行上面的命令安装,然后在main.js下面加入 //引入quill-editor编辑器import...

  • 简单记录平时画图用到的python 便捷小脚本 1. 从单个文件输入 绘制坐标系图 #!/usr/bin/python # coding: utf-8 import matplotlib.pyplot as plt import numpy as np import matplotlib as mpl import sysf...

  • Open3D是一个开源库,支持快速开发和处理3D数据。Open3D在c++和Python中公开了一组精心选择的数据结构和算法。后端是高度优化的,并且是为并行化而设置的。本系列学习计划有Blue同学作为发起人,主要以Open3D官方网站的教程为主进行翻译与实践的学习计划。点云PCL公众号作为免费的3D视觉,点云交流社区,期待有使用Op...

  • 业务场景: 我在一个bash脚本中修改了PATH变量的内容,并将其保存到/etc/profile文件中,同时执行了 source /etc/profile 但是当脚本退出时,我发现PATH变量还是没有修改生效,但是,如果我在命令行再直接执行 source /etc/profile 才发现PATH生效了。 请问,这是什么原因呢?...

  • 给定一个二叉树与整数sum,找出所有从根节点到叶结点的路径,这些路 径上的节点值累加和为sum 即创建一个二叉树,要求二叉树中有一个路径从根节点到叶节点到路径加起来代表到和为 给定的sum 如下二叉树 给定路径之和为18,则需要输出两条路径: [1,4,5,8] [1,4,6,7] 同样,这个过程我们可以使用先序深度优先搜索,同...

  • export PATH=$PATH:/usr/local/php/bin 转载于:https://www.cnblogs.com/ttiandeng/p/6554902.html...

  • 2019独角兽企业重金招聘Python工程师标准>>> 每台计算机安装程序不同,环境变量path会有不同,若误删了环境变量path,可以如下完美解决.   Win+R 输入regedit打开注册表(开始-运行里输入regedit)  找到  HKEY_LOCAL_MACHINESYSTEMControlSet002...

  • 数据分析过程中,我们经常可以看到提数的SQL语句,了解SQL常用的基础查询语句,是检验提数逻辑是否正确的途径之一,并且也能更方便使用SMART BI数据分析工具。今天就让小编带大家走进SQL基础查询的世界吧~1、查询单个字段:语法:SELECT 字段名 FROM 表名举例:SELECT first_name FROM employ...

  •   SELECT * FROM tableSELECT * FROM table WHERE name = '强哥'SELECT * FROM table ORDER BY updateTime DESC...

  • 使用 OpenRowSet 和 OpenDataSource 访问 Excel 97-2007 测试文件:D:97-2003.xls和D:2007.xlsx,两个文件的内容是一模一样的。 测试环境:SQL Server 2000 / 2005。 -------------------------------------------...

  • exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure SELECT * INTO tmp_asset FROM OPENROWSET('Microsof...

  • select b.*,(select count(a.id) from td_product a where a.protypeid=b.id) num from td_protype b 转载于:https://www.cnblogs.com/shanlin/archive/2011/09/27/2192725.html...