vue项目创建流程

本文详细介绍了使用Vue创建项目的步骤,从初始化项目到搭建完整的页面结构。包括选择Babel和Router,重置app.vue和router/index.js,清理不必要的文件,设置CSS重置和Rem转换,创建全局组件和路由,配置数据交互和工具类,实现一级和二级路由,以及路由导航和全局过滤器的使用。
摘要由CSDN通过智能技术生成

A 创建项目

1vue create app

2选择:babel router(按需选择)

B 重置项目

1app.vue中重置

<template>
  <div></div>
</template>

<script>
export default {

}
</script>

<style>

</style>

2router/index.js重置

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [
  
]

const router = new VueRouter({
  routes
})

export default router

3删除没用的文件夹(assets components views)

C 搭建项目

1 assets/css/reset.css(重置样式的css样式  ) 

 记得在main.js中引入 import "./assets/css/reset.css";

2 assets/js/rem.js(移动端 可以借助插件(px to rem))

      1.vscode安装px to rem

      2.打开左下角 设置图标-->设置-->搜索框:px to rem -->看到16 换成100

      3. alt+z 实现px 和rem互换

window.onload = function(){
    /*720代表设计师给的设计稿的宽度,你的设计稿是多少,就写多少;100代表换算比例,这里写100是
      为了以后好算,比如,你测量的一个宽度是100px,就可以写为1rem,以及1px=0.01rem等等*/
    getRem(720,100)
};
window.onresize = function(){
    getRem(720,100)
};
function getRem(pwidth,prem){
    var html = document.getElementsByTagName("html")[0];
    var oWidth = document.body.clientWidth || document.documentElement.clientWidth;
    html.style.fontSize = oWidth/pwidth*prem + "px";
}

记得在main.js中引入  import "./assets/js/rem" 

3 设置过滤器文件夹(创建filters文件夹)

4 组件

     -components 全局组件

     -pages 路由组件

               -login

                 -login.vue

5 数据交互request(创建request文件夹)

6工具类文件夹utils(创建utils文件夹)

D搭建一级路由

1pages下创建一级路由组件

login 登录

register 注册

index 大首页

list 商品列表

detail 详情

search 搜索

2配置路由视图(app.vue)

<div>
    <!-- 一级路由出口 -->
    <router-view></router-view>
  </div>

3路由规则(router/index.js) 

import register from "../pages/register/register.vue"
import login from "../pages/login/login.vue"
import index from "../pages/index/index.vue"
import list from "../pages/list/list.vue"
import detail from "../pages/detail/detail.vue"
import search from "../pages/search/search.vue"

const routes = [
  {
    path:"/register",
    component:register
  },
  {
    path:"/login",
    component:login
  },
  {
    path:"/index",
    component:index
  },
  {
    path:"/list",
    component:list
  },
  {
    path:"/detail",
    component:detail
  },
  {
    path:"/search",
    component:search
  },
  {
    path:"*",
    redirect: "/login"
  }
]

E绘制登录(login.vue)

<template>
  <div>
      <h3>登录</h3>
      <div>账号:<input type="text"></div>
      <div>密码:<input type="text"></div>
      <button>登录</button>

      <router-link to="/index">首页</router-link>
  </div>
</template>

 F二级路由(index.vue)

1pages下二级路由组件

home 首页

cate 分类

shop 购物车

mine 我的

2配置路由视图(index.vue)

<-- 二级路由视图 -->

    <router-view></router-view>

3配置二级路由规则(router/index.js)

import home from "../pages/home/home.vue"
import cate from "../pages/cate/cate.vue"
import shop from "../pages/shop/shop.vue"
import mine from "../pages/mine/mine.vue"



{
    path:"/index",
    component:index,
    // 二级路由规则
    children:[
      {
        path:"home",
        component:home
      },
      {
        path:"cate",
        component:cate
      },
      {
        path:"shop",
        component:shop
      },
      {
        path:"mine",
        component:mine
      },
    ]
  },

4实现底部选项卡切换(index.vue)(方法不唯一) 

<!-- 底部导航 -->
    <footer class="footer">
      <router-link to="/index/home">首页</router-link>
      <router-link to="/index/cate">分类</router-link>
      <router-link to="/index/shop">购物车</router-link>
      <router-link to="/index/mine">我的</router-link>
    </footer>

5底部实现高亮效果

 <footer class="footer">
        <!-- active-class 实现高亮效果 -->
      <router-link active-class="active" to="/index/home">首页</router-link>
      <router-link active-class="active" to="/index/cate">分类</router-link>
      <router-link active-class="active" to="/index/shop">购物车</router-link>
      <router-link active-class="active" to="/index/mine">我的</router-link>
    </footer>

G路由导航(home.vue)

分为两种

1  router-link(无法做判断)

2编程式导航(可以做有条件的判断)

this.$router.push(path):添加新的历史记录
this.$router.replace(path):用新的历史记录替换当前的历史记录
this.$router.go(-1) 返回
this.$router.go(0) 刷新

 H全局组件  (components)  main.js引入

I全局过滤器(filters) mian.js引入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值