vue.js 踩坑第一步 利用vue-cli vue-router搭建一个带有底部导航栏移动前端项目


vue.js学习 踩坑第一步

1.首先安装vue-cli脚手架

不多赘述,主要参考WiseWrong 的 Vue 爬坑之路(一)—— 使用 vue-cli 搭建项目

 

2.项目呈现效果

项目呈现网址:www.zhoupeng520.cn/index.html

 

项目中主要用了Flex布局,以及viewport相关知识,已达到适应各终端屏幕的目的

 

3.项目主要目录

 
 
4主要代码如下
 
(1)App.vue
 1 <template>
 2   <div id="app">
 3     <router-view class="view"></router-view>
 4     <div class="nav">
 5       <router-link class="nav-item" to="/langren">狼人杀</router-link>
 6       <router-link class="nav-item" to="/sanguo">三国杀</router-link>
 7       <router-link class="nav-item" to="/yingxiong">英雄杀</router-link>
 8     </div>
 9   </div>
10 </template>
11 
12 <script>
13 </script>
14 
15 <style>
16   #app{
17     height: 100%;
18     display: flex;
19     flex-direction: column;
20     flex: 1;
21   }
22   .nav{
23     height: 80px;
24     line-height: 80px;
25     display: flex;
26     text-align: center;
27   }
28   .nav-item{
29     flex: 1;
30     text-decoration: none;
31   }
32   .nav-item:link,.nav-item:visited{
33     background-color: white;
34     color: black;
35   }
36   .nav-item:hover,.nav-item:active{
37     color: white;
38     background-color: #C8C6C6;
39   }
40 
41 </style>

 

(2)main.js
 
 1 // The Vue build version to load with the `import` command
 2 // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
 3 import Vue from 'vue';
 4 import VueRouter from 'vue-router';
 5 import router from './router';
 6 import App from './App';
 7 
 8 Vue.config.productionTip = false;
 9 Vue.use(VueRouter);
10 
11 /* eslint-disable no-new */
12 new Vue({
13   el: '#app',
14   router,
15   template: '</App>',
16   render: h => h(App)
17 });

(3)index.js //这个就是路由的配置

这个可以直接写进main.js 也可像我一样在main.js中引入,各有各的好处

 1 import Vue from 'vue';
 2 import VueRouter from 'vue-router';
 3 Vue.use(VueRouter);
 4 
 5 const router = new VueRouter({
 6     routes: [{
 7         path: '/langren',
 8         component: require('../components/vue/langren.vue')
 9     }, {
10         path: '/sanguo',
11         component: require('../components/vue/sanguo.vue')
12     }, {
13         path: '/yingxiong',
14         component: require('../components/vue/yingxiong.vue')
15     }, {
16         path: '/',
17         component: require('../components/content/content.vue')
18     }]
19 });
20 export default router;

也可以直接写一个routers.js放在src目录下

(4)router.js

 1 import langren from './components/vue/langren.vue';
 2 import sanguo from './components/vue/sanguo.vue';
 3 import yingxiong from './components/vue/yingxiong.vue';
 4 
 5 const routers = [
 6     {
 7         path: '/langren',
 8         component: langren
 9     },
10     {
11         path: '/sanguo',
12         component: sanguo
13     },
14     {
15         path: '/yingxiong',
16         component: yingxiong
17     }
18 ];
19 export default routers;

 

 

(5)content.vue

 1 <template>
 2     <div class="content"><p>我是content!</p></div>
 3 </template>
 4 
 5 <script type="text/ecmascript-6">
 6     export default {};
 7 </script>
 8 
 9 <style lang="stylus" rel="stylesheet/stylus">
10     .content
11         height:100%
12         background:blue
13         flex:1
14         display:flex;
15         justify-content:center
16         align-items:center
17 </style>

langren.vue / sanguo.vue / yingxiong.vue 代码和这个一样只是颜色和p中字段改了下。

 
主要代码就这些了。
 
5.另外写一下主要遇到的报错以及解决方法
(1)由于是用来es6的语法,所以要遵循它 的一些语法规则,所以有的代码最后要多一行空行,有的要加分号,有的要加空格,根据报错来进行更改
(2)semi//indent//no-tabs报错,在.eslintrc.js更改代码如下,主要添加了最后几行。
 1 // http://eslint.org/docs/user-guide/configuring
 2 
 3 module.exports = {
 4   root: true,
 5   parser: 'babel-eslint',
 6   parserOptions: {
 7     sourceType: 'module'
 8   },
 9   env: {
10     browser: true,
11   },
12   // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
13   extends: 'standard',
14   // required to lint *.vue files
15   plugins: [
16     'html'
17   ],
18   // add your custom rules here
19   'rules': {
20     // allow paren-less arrow functions
21     'arrow-parens': 0,
22     // allow async-await
23     'generator-star-spacing': 0,
24     // allow debugger during development
25     'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
26     'semi': ['error', 'always'],
27     'indent': 0,
28     'space-before-function-paren': 0,
29     "no-tabs":"off"
30   }
31 }

 

 
大概就这些,还有的以后再更改。
 
最后由于初入前端行业,可能有很多不对的地方,欢迎大家指正,我会尽快改写。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM