Vue--安装脚手架---创建项目

安装脚手架

  • 安装cnpm

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

  • 安装脚手架 - 新版脚手架

cnpm i @vue/cli -g
vue create myapp (方式1 - 命令行,选择模块创建项目)
vue ui (方式2,命令行,启动可视化界面创建项目)

  • 安装脚手架 - 兼容低版本脚手架

cnpm i @vue/cli-init -g
vue init webpack myapp

  • 命令行创建项目
    e15295f9642bd5a1c98115f26d42ba04.png
    c70c6ef37dca9c542f02403d6043179a.png
    3ff095cd58303143f03a1f3817e094c4.png
    d0ff08015e54f1ec70f5472b4871ba88.png
    0e325d8ef1430b2dc3a7b64d09b623df.png
    c10fe0006aa9ffb48162fba4a522b407.png
    dbdda1b101c097e6b04de8bed8d6096d.png
    55777a5fdb8c2d89d36715c750cc0fa6.png
    4227c71be473406ce543e03add2d2a87.png
    be996fe1616d4aae6cb9874335e2687e.png
    774f2d2beb80aa36a0458671fb90d5f7.png

等待一会.....

说明:如果创建项目不成功,可以拷贝别人创建好的项目,安装依赖即可使用,不要一直创建项目(很费时间)

vue项目目录结构

- node_modules // 项目需要使用的依赖文件
- public // 页面图标等
- src // 我们的主场
- tests // 测试文件
.browserslistrc // 浏览器版本的配置,使用最新的版本
.editorconfig // 编辑器的设置
.eslintrc.js // 代码格式校验的配置
.gitignore // git上传忽略的配置
babel.config.js // babel的配置
cypress.json // 测试的插件配置
jest.config.js // 测试模块的配置
package.json// 项目的描述文件
README.md

src目录结构

- assets // 静态资源文件
- components // 组件
- router // 路由
- store // 状态管理器
- views // 页面
App.vue // 主组件
main.js // 入口文件
registerServiceWorker.js // 生产环境下的一些操作

单文件组件

文件扩展名为 .vue 的 single-file components(单文件组件)

结构 + 表现 + 行为

结构是必须的,表现和行为视情况而定

<template>
    <div></div></template><script lang="">export default {}
</script><style lang=""></style>

script可以添加lang属性,选择 行为的语言 javascript / typescript

style可以添加lang属性,选择 表现的形式 less / scss / stylus

如果需要只针对当前组件添加样式 给style添加一个 scoped 属性

运行项目

cnpm run serve
99f19c8edfbe177850840db941b03e89.png

代码验证基本规则

  • 每一行js相关的代码都不需要加 分号
    e93c4dd75724804c27c47e37918b68a6.png

  • 缩进为两个空格
    8ef616d3762c9acb918a7fc83ada8529.png
    acd305325adebd5c551ab843a6b72478.png
    de3a80f9eb0fce2d998e71970713e5ea.png

  • 每一个文件最后一行为空行,如果不留这一行
    e967f4f7e145936d18260cb455ffae33.png

  • 每两行代码之间的空行不能超过一行
    4aa17be895b40f773eb5e5091ce2dfd9.png

  • 注释语句 // 后面必须得留一个空格,然后写注释
    c0f2f67a8a60471212bbe4aa188f5706.png

  • 每一句代码结束后面不能留空格
    dd2de823e84b51d097a7bc610fc91d68.png

  • 对象 key: value,注意value前加空格
    ea7ecdfe668d13a4ce51e5a77aa8f01a.png

  • 箭头函数 =>左右加空格
    096daa0b1b65319767904ae38ca28996.png

  • 条件判断语句 if (flag) {}, if后加空格,括号内不加空格,括号后加空格

分析入口文件 main.js

import Vue from 'vue'// const Vue = require('vue')import App from './App.vue'// const App = require('./App.vue')import './registerServiceWorker'// require('./registerServiceWorker')import router from './router'// const router = require('./router')import store from './store'// const store = require('./store')// Vue的项目配置 环境标识 -- 生产环境 - false// 项目上线时将此值改为true
Vue.config.productionTip = false// new Vue实例// ? 怎么没有el选项 new Vue().$mount('#app')// ? 怎么没有components注册组件 render: h => h(App)// 用App.vue的模板替换了index.html 中的 <div id="app"></div>new Vue({
    router,
    store,
    render: h => h(App)
}).$mount('#app')

修改主页面结构 App.vue

<template>
  <div class="container">
    <div class="box">
        <header class="header">header</header>
        <div class="content">content</div>
    </div>
    <footer class="footer">footer</footer>
  </div></template>

<style lang="scss"></style>
  • 设计基本的样式 可以自己写scss 函数实现,也可以使用第三方额 scss 库

  • 拷贝 lib 文件至项目的src目录 - 去哪网项目中扒出来的

2ee665b6447b5d63f994d6f9b2b793ab.png

scss库的使用

引入文件时,文件路径中的@代表的就是src的目录

  • 哪里使用哪里就引入 lib/reset.scss;
    f3a8191541474c5a1a625cb455fd9055.png

  • 矩形的表示方法
    0144abfdca60ca2b293cb6659bc69bc4.png

  • 弹性盒布局写法
    b2c6044236641725d5369d86eaa21168.png
    99810c469508b4ea5e4f5ac1303c7bf1.png

  • 垂直方向的弹性盒
    47922745b578661152c4bf818597c4c8.png
    4ffcda5f35c7e67df36f0bbfdd95d6de.png

  • 弹性盒权重设计
    bf41d29119ea6ebca6cf29bb6d6637df.png
    0341e530918b01aee108a385b5a217b8.png

  • 内容过多超出 要可以滚动
    c2920c6603581da66fecef347afcad5c.png
    f90c6a7d50789d1c82e0731fa6d9d841.png

  • 添加背景颜色
    00d8e31d33042242ae1da402d1858acf.png

  • 设置字体颜色
    8208c8a45400f2be05de2fae063f4f5f.png8208c8a45400f2be05de2fae063f4f5f.png

了解更多,请查看 lib/classes.scss

<style lang="scss">
@import '@/lib/reset.scss';
.container {
  @include rect(100%, 100%);
  @include flexbox();
  @include flex-direction(column);
  .box {
    @include flex();
    @include rect(100%, auto);
    @include overflow(auto); // 部分浏览器需要加
    @include flexbox();
    @include flex-direction(column);
    .header {
      @include rect(100%, 0.44rem);
      @include background-color(#f66);
      @include color(#fff);
      @include font-size(18px);
    }
    .content {
      @include flex();
      @include rect(100%, auto);
      @include overflow(auto);
    }
  }
  .footer {
    @include rect(100%, 0.5rem);
    @include background-color(#efefef);
  }
}
</style>

1c8d8a2dcb3b1f99949c3a3828420bdf.png

创建项目的基本的页面

首页、分类、购物车、我的、详情、登陆、注册、搜索、订单、支付......
e6a20634899d6afbafcabd74aa7f7f5a.png

  • 配置页面底部
    5f2d9d80c812699331e06594231fcf0f.png

  • 编辑底部的样式
    81a731ac8c95386c2616234ec91721ed.png
    1b88f5ea1eb32714a3e5dfd71ef5062a.png

  • 添加字体图标 阿里的图标库
    选择图标-》加入购物车-》添加至项目-》选择font-class->生成在线的css连接,复制到public/index.html处的head内部
    ac6bc64a23acab0cac5338ed2cbae7e9.png
    a6de9c3630bdcb83df36c0339dc1b900.png

  • 给底部添加图标
    6b97edb682ab5878d859a442cc909457.png

  • 调整图标的大小以及字体的大小
    e606667d828cb4ef9c9d2f1f6f7ab479.png
    451de98fe929be52617fc0bc731a6ade.png

vue的路由

1.配置路由文件

src/router/index.js
28b64b7a2eb233e6974dce464f022209.png

配置路由规则

const routes = [
  {
    path: '/home', // 地址栏输入的那个网址
    name: 'home', // 起的名字 -- 命名路由
    // 当前地址栏输入这个网址时,你需要显示的是哪一个页面  
    // 路由的懒加载
    component: () => import('@/views/home/index.vue')
  },
  {
    path: '/kind',
    name: 'kind',
    component: () => import('@/views/kind/index.vue')
  },
  {
    path: '/cart',
    name: 'cart',
    component: () => import('@/views/cart/index.vue')
  },
  {
    path: '/user',
    name: 'user',
    component: () => import('@/views/user/index.vue')
  },
  {
    path: '/login',
    name: 'login',
    component: () => import('@/views/login/index.vue')
  },
  {
    path: '/register',
    name: 'register',
    component: () => import('@/views/register/index.vue')
  }
]

路由对应组件的显示

5caa74f5ff4ed72f875578b0c31cb12b.png

 

------------------------------------------------------------------文章来自吴大勋(大勋说)链接

posted @ 2020-04-19 10:34  haccer  阅读(227)  评论(0)    收藏  举报