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