vue脚手架的使用

京东

淘宝镜像

1、安装cnpm

npm i cnpm --registry=https://registry.npm.taobao.org -g 

2、然后就可以cnpm安装依赖包了

cnpm install  @vue/cli -g

3、cnpm config ls 查看

安装VUe脚手架

 cnpm install -g @vue/cli

创建项目

vue create vue-jd(项目名)
<!-- 创建成功后 执行命令 -->
cd vue-jd 进入项目
npm run serve 启动项目

语言环境配置

应用商店中安装 vetur

配置页面

创建views文件 放置能看到的页面 src/views/home/Home.vue

设置路由

安装:npm install vue-router -S

路由配置页面

src/router.js

import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
import Home from '@/views/home/Home.vue'
import Cart from '@/views/cart/Cart.vue'
import User from '@/views/user/User.vue'
import Cate from '@/views/cate/Cate.vue'
import Jdm from '@/views/jdm/Jdm.vue'
const routes=new VueRouter({
    routes:[
        {
            path:'/home',
            component:Home
        },
        {
            path:'/cate',
            component:Cate
        },
        {
            path:'/cart',
            component:Cart
        },
        {
            path:'/user',
            component:User
        },
        {
            path:'/jdm',
            component:Jdm
        }
    ]
})
export default router

入口文件引入

import Vue from 'vue'
import App from './App.vue'
<!-- 引入路由 -->
import router from './router'
Vue.config.productionTip = false

new Vue({
    <!-- 挂载 -->
  router,
  render: h => h(App),
}).$mount('#app')

app.vue引入

<!-- 视图 -->
<router-view></router-view>

sass

安装:1.npm i sass-loader -S
2.cnpm i node-sass -S

  • 如果因为网络原因,node-sass安装失败,使用下面命令进行安装
npm install node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

Rem

public=>rem.js=>在index.html引入
<script src="./rem.js"></script>

function resetRootFZ(){
    var oHtml = document.querySelector('html');
    var w = oHtml.getBoundingClientRect().width;
    // 设置根字体的大小等于html节点的宽度的十分之一
    oHtml.style.fontSize = w/10 + 'px';
  };
  
  resetRootFZ();
  
  // 当window窗口尺寸变化时,重新设置根字体的大小
  window.addEventListener('resize',function(){
    resetRootFZ();
  });

在设置/设置找到rem 修改设置

"px-to-rem.px-per-rem": 75或
"cssrem.rootFontSize": 75

底部导航栏

先构建一个图片组

src/assets/index.js
export const icons={
    icon1:'...'
}

把图片引入底部导航栏

<template>
  <div class="navbar">
   <router-link to='/home'>
      <img :src="imgArr.icon1" alt="">
   </router-link>
  </div>
</template>
<script>
import {imgArr} from '@/assets/index.js'
export default {
  data:function(){
    return{
      imgArr
    }
  }  
}
</script>

引入相关组件

<template>
    <div class="home">
        <NavBar></NavBar>
        111
    </div>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
export default {
    components:{
        NavBar
    }
}
</script>

Mint-ui

安装

npm i mint-ui -S

配置

在main.js中引入

import MintUI from 'mint-ui'
import 'mint-ui/lib/style.css'
Vue.use(MintUI)

icon图标

网站:
在inde.html引入

<link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

在需要的页面开始使用
<i class="fa fa-window-restore "></i>

Vuex状态管理

安装

npm i vuex -S

创建store.js

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store=new Vuex.Store({
state:{
    <!-- 放数据 -->
msg:'111'
},
mutations:{

},
actions:{

}

})
export default store

引入入口文件

import store from './store'

axios

安装

npm i axios -S

调接口

接口方法也写在状态管理中

import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'
Vue.use(Vuex)
// 调取接口方法
function fetch(api,callback){
    // 显示加载中
    axios({
        method:"GET",
        url:'http://localhost:8080'+api,
        // headers:{
        //     token:
        // }
    }).then(res=>{
        let data=null
        if(res.data.err===0){
            data=res.data.data
        }
        callback&&callback(data)
       
    }).catch(err=>{
        console.log('接口请求异常',err)
    }).then(()=>{
        // 总是会执行
        // 隐藏加载中
    })
}
const store=new Vuex.Store({
state:{
msg:'111',
skillArr:[]

},
mutations:{
updateSkillArr(state,payload){
    state.skillArr=payload
}
},
actions:{
    // 调数据
    // 表示store实例
    getSkillGoods(store){
        fetch('/db/goods.json',data=>{
            console.log(data)
            store.commit('updateSkillArr',data)
        })
        // 通过store.commit('updateSkillArr',data)把负载给updateSkillArr 在调updateSkillArr方法 
        在把他给state
    }

}

})
export default store

如何调取数据并渲染

<!-- 在actions里面调取 -->
actions:{
    // 掉数据
    getSkillGoods(){
        fetch('db/goods.json')
    }

}
在相关组件中引入
import {mapActions,mapState} from 'vuex'
<!-- 放数据在地方 -->
 computed: {
    ...mapState(['adArr', 'rcmdArr'])
  },
<!-- 调用-->
mounted(){
    this.getSkillGoods ()
}
<!-- 映射进来 -->
methods:{
       ...mapActions(['getSkillGoods '])
   }

no-console 问题

在package.json中配置

 "rules": {
      "no-console":0
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容