Vue-cli项目搭建

创建vue项目

在之前的vue学习中,都是在html中编写的,但是在一个vue项目中,都是以vue后缀的文件编写组件的。

创建vue项目需要node.js环境,node.js是一款后端语言。

第一步:安装node.js,下载地址:下载 | Node.js 中文网 (nodejs.cn),一路下一步,安装完成后会自动添加到环境变量中,这个时候你的cmd就会多了两个命令:

  • node:进入node.js环境
  • npm:安装模块用

第二步:安装vue-cli,打开cmd窗口输入

npm install -g @vue/cli

如果下载慢,可以用以下命令:

npm install -g @vue/cli --registry=https://registry.npm.taobao.org

或者

# 先安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
# 以后都用cnpm替代npm使用
cnpm install -g @vue/cli

第三步:创建vue项目,会在当前目录创建。

vue create 项目名

这时候会出现配置选择,通过方向键上下选择,回车确认。

image

继续方向键选择,按空格选中,选中如图三个选项,回车确认。

image

选择vue版本,这里我选2.x

image

然后输入y。

选择第二个。

image

最后选择是否保存当前的配置选择,输入y保存,输入n取消。保存后以后创建vue项目可以直接用保存好的配置,较方便。

这时候就创建完毕了。

第三步的另外一种方式:使用图形化界面创建vue项目,打开cmd窗口输入:

vue ui

运行后会出现一个地址,访问地址,创建流程如下:

image

第四步:运行vue项目

  • 方式一:cmd窗口cd到你创建的项目内,执行

    npm run serve
    
  • 方式二:使用pycharm、HbuildX等应用打开vue项目运行。

vue项目目录结构

项目名
├── node_modules -- 项目的依赖
├── public -- 文件夹
├    ├── favicon.ico -- 网站顶部小图标
├    └── index.html -- 单页面开发,项目唯一页面
├── src -- 文件夹,主要代码都在里面
├    ├── assets -- img,js,css,都可以放在这里
├    ├── components -- 小组件,放在页面组件中的
├    ├── store -- 安装了vuex就会生成
├    ├── router -- 安装了vue-router就会生成,配置路由
├    ├── views -- 页面组件存放在这
├    ├── App.vue -- 根组件,靠它和唯一的页面连接的
├    └── main.js -- 整个项目的入口 
├── .gitignore -- git版本管理
├── babel.config.js -- babel的配置,不用管
├── jsconfig.json
├── package.json -- 项目的配置,和依赖的模块都在这
├── package-lock.json
├── README.md -- 项目的介绍
└── vue.config.js -- vue的配置信息

项目传给别人,node_modules这个文件夹要删掉,别人通过npm install 生成,装好该项目的依赖。

es6导入导出语法

在一个js文件中想要使用另一个js文件中的变量、函数等,就要用到导入导出语法。

导出

每个模块中,只允许使用唯一的一次export default,否则会报错。

export default 对象

导入

js后缀不用写,如果文件夹内有一个index.js,只导入文件夹,就相当于导入了文件夹下的index.js。

// 全部导入
import 起个名字  from 'js文件名'
// 单独导入
import {变量}  from 'js文件名'

举例:

a.js:

const name = 'ton'
const age = 18
export default {
    name:name
}

b.js:

import aa from './a'
console.log(aa.name)  // 正常取出
console.log(aa.age)  // 没有值,因为没导出

单页面组件写法

vue项目中的每一个vue后缀的文件都是一个组件。

一个vue组件包含以下内容:

  • template:html内容
  • script:js内容
  • style:css样式

比如Vue项目views文件夹下的HomeVie.vue文件:

<template>
  <div class="home">
    <h1>{{ aa }}</h1>
    <img alt="Vue logo" src="../assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>
  </div>
</template>

<script>
// @就相当于/src,这里导入HelloWorld.vue组件
import HelloWorld from '@/components/HelloWorld.vue'

export default {
  name: 'HomeView',
  // 组件属性写在这
  data() {
    return {
      aa: 'abcd'
    }
  },
  components: {
    HelloWorld
  }
}
</script>
<!--scoped表示这个css样式只作用于当前组件-->
<style scoped>
img {
  width: 100px;
}
</style>

vue-router路由使用

vue-router是第三方插件,可以通过访问路由实现组件间的切换。

vue项目创建好后,在默认情况下,根路由显示的是HomeView.vue组件,/about路由显示的是AboutView.vue组件。这个就是通过vue-router实现的。

使用

1.需要在根组件(App.vue)中添加标签:默认已经添加了

<router-view/>

2.创建页面组件,一般页面组件放在views文件夹内

MyView.vue:

<template>
  <div>
    <h1>这是MyView</h1>
  </div>
</template>

<script>
export default {
  name: "MyView"
}
</script>

<style scoped>
</style>

3.然后到router文件夹-->index.js中配置路由:除了两个默认的路由,添加自己的路由

import MyView from "../views/MyView";
const routes = [
    {
        path: '/',
        name: 'home',
        component: HomeView
    },
    {
        path: '/about',
        name: 'about',
        component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
    },
    // 配置自己的路由
    {
        path: '/my',  // 路由地址
        name: 'my',  // 别名
        component: MyView  // 导入的组件名称
    }
]

这时候访问/my路由就会显示MyView.vue组件的内容了。

4.编写可以跳转到/my路由的标签,我这里写在App.vue内,你也可以写在其他地方。

  • 方式一:在html中写
<template>
  <div id="app">
    <router-link to="/my">My</router-link>
    <router-view/>
  </div>
</template>
<template>
  <div id="app">
    <a href="/my">My</a>
    <router-view/>
  </div>
</template>

对比<a><router-link>避免了不必要的重渲染,它只更新变化的部分从而减少DOM性能消耗。

  • 方式二:在js中写,编写事件触发
this.$router.push('/my')
window.location.href="/my"

同样,用window.location.href会有不必要的重渲染。

posted @ 2022-06-30 15:42  Yume_Minami  阅读(2933)  评论(0编辑  收藏  举报