vue学习笔记(四)
一、vue-router
1、简介
我们经常使用vue开发单页面应用程序(SPA)。在开发SPA过程中,路由是必不可少的部分,vue的官方推荐是vue-router。单页面应用程序看起来好像是一个页面,其实是在一个页面中切换不同的html部分,从而达到所谓的单页面,在这切换之中,就需要使用路由来实现不同的页面内容的展现。
2、基本用法
(1).使用步骤
vue-router的基本使用步骤如下:
- 定义需要切换的组件
- 配置路由,规定路径到组件的映射关系
- 创建路由实例
- 将路由挂载到vue实例
//1.定义组件,用于路由切换
var Home = {
template: '<div>我是主页</div>'
}
var News = {
template: '<div>我是新闻</div>'
}
//2.配置路由
const routes = [{
path: '/home',
component: Home
},{
path: '/news',
component: News
},{ //这一路由配置用于首次访问或者找不到所请求路由,自动跳转home页
path: '*',
redirect: '/home'
}];
//3.创建路由实例
var router = new VueRouter({
routes //传入配置好的路由信息
});
//4.挂载路由到根组件
new Vue({
el: '#app',
router
});
这样我们就配置好了一个完整的路由。在切换组件的时候会根据路由加载不同的组件。我们使用类似a标签的<router-link to="url"></router-link>
触发组件的切换,to
属性存放的是路径。使用<router-view></router-view>
来显示所切换组件。
<div id="app">
<router-link to="/home">主页</router-link>
<router-link to="/news">新闻</router-link>
<router-view></router-view>
</div>
这样我们就可以实现主页和新闻组件间的切换。
(2).参数传递
可能我们需要向所切换组件传递参数。vue提供了两种向组件传递参数的方式。
- 查询字符串的形式
- /home?name=dawei&pwd=666
- 在组件内部使用
{{$route.query}}
接收参数
- 在组件内部使用
- rest风格
- /news/param1/param2
- 在组件内部使用
{{$route.params}}
接收参数
- 在组件内部使用
(3).路由嵌套
路由还可以多层嵌套使用,使用children
属性。
{
path:'/user',
component:User,
children:[
{
path:'login',
component:Login
},
{
path:'regist',
component:Regist
}
]
}
子路由项路径不要使用/
开头,以 /
开头的嵌套路径会被当作根路径。
在组件中就可以使用该路由:
<div>
<h3>用户信息</h3>
<ul>
<router-link to="/user/login">用户登陆</router-link>
<router-link to="/user/regist">用户注册</router-link>
</ul>
<router-view></router-view>
</div>
注意路径的写法。
3、路由实例的方法
这里学习两个路由实例的方法:router.push()
和router.replace()
。
- router.push():添加路由,功能上与
<route-link>
相同 router.replace(): 替换路由,不产生历史记录
router.push({path:'home'}) router.replace({path:'user'})
4、路由结合动画
路由结合动画使用很简单,我们可以用 <transition> 组件给它添加一些动画效果:
<transition>
<router-view></router-view>
</transition>
二、单文件组件
1、.vue文件
.vue
文件称为单文件组件,是Vue.js自定义的一种文件格式,一个.vue文件就是一个单独的组件,在文件内封装了组件相关的代码:html、css、js代码。
.vue
文件由三部分组成:<template>
、<style>
、<script>
:
<template>
//html
</template>
<script>
//js
</script>
<style>
//css
</style>
2、vue-loader
浏览器本身并不认识.vue文件,此时需要vue-loader对.vue文件进行加载解析,。类似的loader还有许多,如:html-loader、css-loader、style-loader、babel-loader等。需要注意的是vue-loader是基于webpack的。
3、webpack
webpack是一个前端资源模板化加载器和打包工具,它能够把各种资源都作为模块来使用和处理。实际上,webpack是通过不同的loader将这些资源加载后打包,然后输出打包后文件。简单来说,webpack就是一个模块加载器,所有资源都可以作为模块来加载,最后打包输出。
三、vue-cli
1. 简介
vue-cli是一个vue脚手架,可以帮助我们快速构造项目结构,减少开发人员开发阻力。vue-cli集成了多种版本:
- simple :比较简单
- webpack :包含ESLint代码规范检查和unit单元测试等
- webpack-simple: 没有代码规范检查和单元测试
- browserify: 使用的也比较多
- browserify-simple
2.安装、操作步骤
//安装vue-cli,配置vue命令环境
cnpm install vue-cli -g
vue --version
vue list
// 初始化项目,生成项目模板
vue init 模板名 项目名
//进入生成的项目目录,安装模块包
cd vue-cli-demo
cnpm install
//运行
npm run dev //启动测试服务
npm run build //将项目打包输出dist目录,项目上线的话要将dist目录拷贝到服务器上
3.文件介绍
.
|-- build // 项目构建(webpack)相关代码
| |-- build.js // 生产环境构建代码
| |-- check-version.js // 检查node、npm等版本
| |-- dev-client.js // 热重载相关
| |-- dev-server.js // 构建本地服务器
| |-- utils.js // 构建工具相关
| |-- webpack.base.conf.js // webpack基础配置
| |-- webpack.dev.conf.js // webpack开发环境配置
| |-- webpack.prod.conf.js // webpack生产环境配置
|-- config // 项目开发环境配置
| |-- dev.env.js // 开发环境变量
| |-- index.js // 项目一些配置变量
| |-- prod.env.js // 生产环境变量
| |-- test.env.js // 测试环境变量
|-- src // 源码目录
| |-- components // vue组件
| |-- store // 状态管理
| |-- App.vue // 页面入口vue文件
| |-- main.js // 程序入口文件,加载各种公共组件
|-- static // 静态文件
| |-- data
|-- .babelrc // ES6语法编译配置
|-- .editorconfig // 定义代码格式
|-- .gitignore // git上传需要忽略的文件格式
|-- README.md // 项目说明
|-- favicon.ico //网页图标
|-- index.html // 入口页面
|-- package.json // 项目配置信息
.
vue学习笔记(四)的更多相关文章
- vue学习笔记(四)事件处理器
前言 在上一章vue学习笔记(三)class和style绑定的内容中,我们学习了如何在vue中绑定class和style,介绍了常用的绑定方法,class的数组绑定和对象绑定以及style的数组绑定和 ...
- Vue学习笔记四:跑马灯效果
目录 跑马灯原理 HTML 箭头函数 计时器 跑马灯效果 跑马灯原理 先讲讲跑马灯的原理,就是一行字,会滚动,思路是这样的,使用substring方法,一个获取字符串的第一个字,一个获取1后面所有的字 ...
- VUE 学习笔记 四 计算属性和监听器
1.计算属性 对于任何复杂逻辑,你都应当使用计算属性 <div id="example"> <p>Original message: "{{ me ...
- vue学习笔记(六)表单输入绑定
前言 在上一章vue学习笔记(四)事件处理器这一篇博客的内容中,我们已经了解vue是如何绑定事件的,而本篇博客主要讲解的是vue中表单输入的绑定,通常我们自己提交信息的时候都是通过表单将信息到服务器的 ...
- Vue学习笔记-Vue.js-2.X 学习(四)===>脚手架Vue-CLI(基本工作和创建)
(五) 脚手架Vue-CLI 一 Vue-CLI前提(nodejs和webpack) 二 Vue学习-nodejs按装配置,Node.js 就是运行在服务端的 JavaScript. 1. 去nod ...
- Vue学习笔记-Vue.js-2.X 学习(三)===>组件化高级
(四) 组件化高级 1.插槽(slot)的基本使用 A:基本使用: <slot></slot> B:默认置:<slot><h1>中间可以放默认值< ...
- Vue学习笔记-Vue.js-2.X 学习(一)===>基本知识学习
一 使用环境: windows 7 64位操作系统 二 IDE:VSCode/PyCharm 三 Vue.js官网: https://cn.vuejs.org/ 四 下载安装引用 方式1:直接 ...
- Vue学习笔记-vue-element-admin 按装报错再按装
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- Vue学习笔记-2
前言 本文非vue教程,仅为学习vue过程中的个人理解与笔记,有说的不正确的地方欢迎指正讨论 1.computed计算属性函数中不能使用vm变量 在计算属性的函数中,不能使用Vue构造函数返回的vm变 ...
随机推荐
- Random variable
\(\underline{cdf:}\)cumulative distribution function \(F(x)=P(X \leq x)\) \(\underline{pmf:}\)probab ...
- Miller-Rabin素数检测算法
遇到了一个题: Description: Goldbach's conjecture is one of the oldest and best-known unsolved problems in ...
- MOOC(10)- 获取响应中的cookie
- OpenCV 为程序界面添加滑动条
#include <cv.h> #include <highgui.h> using namespace cv; /// 全局变量的声明与初始化 ; int alpha_sli ...
- mvn docker 部署 每次都需要下载包的问题
项目大版本更新依赖很稳定,小版本基本不引入其他依赖 docker打包时image时,一次mvn package后 把m2文件拷贝解压,之后build时直接拷入,省得还得下载 FROM maven:3. ...
- 学习python-20191107
一.导入模块的两种方式 方式1:import 包名.模块名 [ as 别名]方式2:from 包名 import 模块名 from 包名.模块名 import 变量|函数|类 # ...
- linux下安装glibc-2.14,解决“`GLIBC_2.14' not found”问题
下载安装包:http://ftp.gnu.org/gnu/glibc/ 我下载的是glibc-2.14.1.tar.gz 解压:tar xzf glibc-2.14.1.tar.gz cd glibc ...
- HDU 5978 To begin or not to begin
题目:HDU 5978 To begin or not to begin 思路: 题目意思是说:给出n个黑球,一个红球,拿到红球的人胜利.如果先手有优势的输出 1 ,没有优势的输出 2 ,机会均等则输 ...
- NEON优化之《简介》
NDK支持NEON环境配置:https://blog.csdn.net/app_12062011/article/details/50462351 一个很典型的例子:http://hilbert-sp ...
- MyBatis之一级缓存及其一级缓存失效
定义: 一级缓存:本地缓存:与数据库同一次会话(sqlSession)期间查询到的数据会放在本地缓存中,如果以后要获取相同的数据直接从缓存中获取,不会再次向数据库查询数据一个SqlSession拥有一 ...