创建Vue项目之前的准备

1.安装node

官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/

2.安装cnpm

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

3.安装脚手架

cnpm install -g @vue/cli

4.清空缓存

npm cache clean --force

创建Vue项目

第一种:

1.创建一个新的Vue项目

# 切换到指定的文件夹下
>>> vue create 项目名 # 可以使用 -

2.进入之后使用自定义

3.使用pycharm打开新建的项目

4.使用pycharm启动项目

5.安装pycharm中的vue插件

第二种

1.打开cmd

C:\Users\Wang Hongkun>vue ui

2.会出现以下的页面,按照指示创建

3.使用cmd启动项目

npm run serve / ctrl+c
// 要提前进入项目根目录

重新构建项目

1.将之前建立的项目中的public,src文件夹和package.json三个文件拷贝到新的文件夹下,再下载新的依赖,cmd中运行

>>> cnpm install

注意点:

1.不要使用默认下载的依赖,

2.Vue语法标签支持大小写

项目目录介绍

├── v-proj
| ├── node_modules // 当前项目所有依赖,一般不可以移植给其他电脑环境
| ├── public
| | ├── favicon.ico // 标签图标
| | └── index.html // 当前项目唯一的页面
| ├── src
| | ├── assets // 静态资源img、css、js
| | ├── components // 小组件
| | ├── views // 页面组件
| | ├── App.vue // 根组件
| | ├── main.js // 全局脚本文件(项目的入口)
| | ├── router
| | | └── index.js// 路由脚本文件(配置路由 url链接 与 页面组件的映射关系)
| | └── store
| | | └── index.js// 仓库脚本文件(vuex插件的配置文件,数据仓库)
| ├── README.md
└ └── package.json等配置文件

项目的生命周期

1.启动项目,加载主脚本main.js,先将环境导入,创建了一个根路由

import 别名  from  资源

1.如果资源在node_modules中,可以直接写资源名
2.导入文件可以省略后缀,但是千万不能重名,最好是把后缀也写上
3. ./表示当前级, ../表示上一级

主脚本文件main.js作用:

1.加载Vue环境,创建根组件完成渲染

2.加载系统已有的第三方环境:router,store

3.加载自定义的第三方环境与自己配置的环境,后期项目不断添加

2.router被加载,就会解析router文件夹下的index.js脚本文件,完成路由 - 组件的映射关系

3.新建视图组件vue(在views文件夹中),在路由中配置(在router的index.js中),设置路由跳转

<router-view></router-view>   # 将所有的组件与路由的关系进行对应,起页面组件占位符的作用

# APP.vue中固定的写法
<template>
<div id="app">
<router-view></router-view>
</div>
</template>

Vue文件式组件

新建一个Vue文件的时候都会产生三个根标签

# template标签负责组件的html结构,有且只有一个根标签
<template> </template> # script标签负责组件的js逻辑,逻辑固定导出 expor default(组件内容)
<script>
export default {
name: "ceshi"
}
</script> # style标签负责组件的css样式,scoped保证样式的组件化,样式只在该组件内部起作用
<style scoped> </style>

配置自定义全局样式

在assets中建立存放静态文件的文件夹,然后在main.js中进行导入

# 配置全局样式的导入方法:

1.import '@assets/css/global.css'  # @代表src文件夹的决对路径

2.require('@assets/css/global.css')   # 官方推荐使用这种

路由逻辑跳转

给事件绑定一个点击事件,再点击的时候是不会触发跳转的,需要通过一些参数来进行设置

对点击事件进行跳转处理方法:

this.$router.push({ name: 'home' })

设置历史记录的前进和后退,正为前进,负为后退

this.$router.go(2)

路由的重定向

在index.js中更改路由匹配

{
path:'/home',
redirect:'/' # 路由重定向
}

当点击的时候会将发送的参数

console.log(this.$router);  // 控制路由路径

VueRouter {app: Vue, apps: Array(1), options: {…}, beforeHooks: Array(0), resolveHooks: Array(0), …}
currentRoute: (...)
app: Vue {_uid: 2, _isVue: true, $options: {…}, _renderProxy: Proxy, _self: Vue, …}
apps: [Vue]
options: {mode: "history", base: "/", routes: Array(5)}
beforeHooks: []
resolveHooks: []
afterHooks: []
matcher: {match: ƒ, addRoutes: ƒ}
fallback: false
mode: "history"
history: HTML5History {router: VueRouter, base: "", current: {…}, pending: null, ready: true, …}
__proto__: Object
console.log(this.$route)    // 控制路由数据

{name: "home", meta: {…}, path: "/", hash: "", query: {…}, …}
name: "home"
meta: {}
path: "/"
hash: ""
query: {}
params: {}
fullPath: "/"
matched: [{…}]
__proto__: Object

生命周期钩子

发生的时间:当实例初始化之后被立即调用,一个时间从创建到销毁的生命周期

可以根据这种特性在第一个页面跳转到第二个页面之间进行一些操作,

特点:

1.一个组件从创建到销毁的众多时间按节点回调的方法

2.生命周期钩子的作用就是满足在不同时间节点需要完成的事情

3.这些方法都是vue组件实例的成员

使用方法:

script >>> export default{    } >>> 在大括号内直接进行定义,也是一个实例

export default {
# 生命周期钩子
beforeCreate() {
console.log('Home组件要创建了');
console.log(this.back_data);
},
created() { // 重要方法:在该钩子中完成后台数据的请求
console.log('Home组件创建成功了');
console.log(this.back_data);
},
beforeMount() {
console.log('Home组件准备加载')
},
mounted() { // 特别耗时的数据请求,可以延后到组件初步加载成功后,再慢慢请求
console.log('Home组件加载完成')
},
destroyed() {
console.log('Home组件销毁成功了')
}
}

常用的生命周期钩子

# 组件要创建了
beforeCreate() {}, # 组件创建成功 重要方法:在该钩子中完成后台数据的请求
created() {}, # 组件准备加载
beforeMount() {}, # 组件加载完成 特别耗时的数据请求,可以延后到组件初步加载成功后,再慢慢请求
mounted() {}, # 组件销毁成功
destroyed() {}

路由传参的两种方式

1.前台加载静态资源中的图片采用require

img: require('@/assets/img/002.jpg')

2.通过路由传参的方式有两种,

第一种:

先定义好每个数据的pk,然后通过发送过来的数据通过 this.$router.push() 进行接收

1.<router-link :to="`/course/detail?pk=${course.id}`">{{ course.title }}</router-link>

2. goDetail(pk) {this.$router.push({
name: 'course-detail',
query: {pk: pk}
});
# this.$router.push(`/course/detail?pk=${pk}`); 可以获取到发送过来的数据 # 路由中的配置
{path: '/course/detail',
name: 'course-detail',
component: CourseDetail}

第二种:

<router-link :to="`/course/${course.id}/detail`">{{ course.title }}</router-link>

在路由中在进行配置
{path: '/course/:pk/detail',
name: 'course-detail',
component: CourseDetail}

Vue --- 项目创建的更多相关文章

  1. 1219 Vue项目创建及基础

    目录 vue项目 1. 项目创建 cmd创建 可视化创建 2. 项目启动 vue重新构建依赖 pycharm管理vue项目 3. 项目目录介绍 index.html index.js App.vue ...

  2. vue项目创建步骤 和 路由router知识点

    菜单快捷导航: vue项目创建 vue路由router知识点(路径参数.查询参数.命名路由.嵌套路由.命名视图.hash/history模式) 1.创建一个vue项目步骤 (windows环境下).创 ...

  3. vue项目创建与使用

    目录 复习 Vue项目环境搭建 Vue项目创建 pycharm配置并启动vue项目 vue项目目录结构分析 vue组件(.vue文件) 全局脚本文件main.js(项目入口) 改写 vue项目启动生命 ...

  4. Vue入门:Vue项目创建及启动

    1. 创建Vue项目存放地址 用于存放Vue项目,找个自己处理方便的地方.本人地址:D:\Program Files\Workspace\Vue 2. 创建项目 进入cmd窗口 进入项目存放地址 执行 ...

  5. react & vue 项目创建的方式

    创建reactApp的几种方式: create-react-app filename  适用于npm6及以下. npm init react-app filename 适用于npm6以上. npx c ...

  6. Vue安装以及Vue项目创建以及Vue Devtools安装

    这几天一直在学习Vue.js框架. 因为以前没有前端项目的经验,也没学过什么前端框架,所以,对于vue.js的学习有些不知所措. 在vue.js官网看教程,按照教程指点,可以不用脚手架开发,也可以搭建 ...

  7. vue项目创建

    使用命令行工具npm新创建一个vue项目   使用vue开发项目的前期工作可以参考前面写的:  Vue环境搭建及node安装过程整理 Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用. ...

  8. vue项目创建流程和使用

    vue项目的创建 npm run dev 让项目执行起来 #下载vuex npm install vuex --save#下载axiosnpm install axios --save 当我们生成项目 ...

  9. Python Django Vue 项目创建

    环境安装忽略,可参考前面个篇幅介绍 1.创建项目 打开pycharm 终端,输入如下,创建项目 # 进入pycharm 项目目录下 cd pyWeb django-admin startproject ...

随机推荐

  1. 机器学习中什么是端到端的学习(end-to-end learning)?

    相对于深度学习,传统机器学习的流程往往由多个独立的模块组成,比如在一个典型的自然语言处理(Natural Language Processing)问题中,包括分词.词性标注.句法分析.语义分析等多个独 ...

  2. Java基础知识点总结(四)

    ”https://www.runoob.com/java/java-data-structures.html” 成员方法:是类中自己定义的方法. 构造方法:要和自己类中类名相同. 不论是构造函数还是成 ...

  3. Python输错4次用户名密码需要输入验证码

    time = 0 login_success = False USER_NAME = "alex" PWD = "alex123" CHECK_CODE = & ...

  4. OracleVM桥接网卡无法获取本地连接网卡

    问题现象 VM虚拟机采用桥接网卡时,界面名称为"未指定",无法获取本地连接对应网卡信息: 处理方式: 进入本地连接,选择本地连接右键进入属性设置窗口; 选择安装,单击服务选项后点击 ...

  5. MongoDB 概述

    一.概述: 1.NoSQL数据库(非关系型数据库) 2.文档存储 3.格式类似JSON,BSON 4.最终一致性(非ACID) , CAP定理(C 一致性,A 高可用,P 分区性) 5.高可扩展性(分 ...

  6. pytest_pytest-html生成html报告

    前言 pytest-HTML是一个插件,pytest用于生成测试结果的HTML报告.兼容Python 2.7,3.6 pytest-html 1.github上源码地址[https://github. ...

  7. 全栈项目|小书架|服务器端-NodeJS+Koa2 实现评论功能

    评论功能分析 上图可以看出评论功能主要实现了:评论的发布.评论列表的展示. 在不考虑子评论以及图片评论的场景下,评论功能主要有以下两个接口: 发布评论 获取评论列表(考虑分页) 评论 Model 的建 ...

  8. 移动端开发之响应式开发和bootstrap基础

    响应式开发 (就是利用媒体查询针对不同宽度的设备进行布局和样式的设置,从而设配不同设备的目的) 响应式布局容器响应式需要一个父级作为布局容器,来配合子级元素来实现变化效果 原理:不同屏幕下,通过媒体查 ...

  9. 利用windows服务实现整点报时功能

    程序语言:C# 实现目标:程序托管自动运行,每到整点播放语音报时. 准备素材:00——23点的整点报时声音文件. 实现过程: 1.新建windows服务项目 2.添加安装程序 3.设置服务属性 [添加 ...

  10. 高性能Golang研讨会【精】

    by Dave Cheney 概观 本次研讨会的目标是为您提供诊断Go应用程序中的性能问题并进行修复所需的工具. 通过这一天,我们将从小工作 - 学习如何编写基准,然后分析一小段代码.然后走出去讨论执 ...