<div v-bind:自定义属性(也可以是标签自带的属性)="{{变量}}">div>
<div :自定义属性(也可以是标签自带的属性)="{{变量}}">div>
<div v-on:click="函数名称">div>
<div @click="函数名称">div>
<div>
<slot>slot>
<slot name="a">slot>
<slot name="b">slot>
div>
<div>
<组建名>
abc
<template v-slot="a">
<div>这个是a插槽的内容div>
template>
<template v-slot="b">
<div>这个是b插槽的内容div>
template>
组建名>
div>
<script>
import 组建名 from "组件地址"
export default {
components: {
组建名
}
}
</script>
<div>
<slot a="a" b="b" :c="变量">slot>
div>
<div>
<组建名>
<template v-slot="{a, b ,c}">
template>
组建名>
div>
<script>
import 组建名 from "组件地址"
export default {
components: {
组建名
}
}
</script>
}
<button @click="func">button>
methods: {
func() {
this.$emit('自定义事件名',要传递的参数)
}
}
<组件名 @自定义事件名="函数">组件名>
<keep-alive>
<router-view></router-view>
</keep-alive>
watch: {
'$route': function(to, from) {
// to 是要进入的页面的路由对象
// from 是要离开的页面的路由对象
},
'$route.path': function(to, from) {
// to 是要进入的页面的路由对象
// from 是要离开的页面的路由对象
}
}
data() {
return {
count: 0,
obj: {
age: 0,
name: ''
}
}
},
watch: {
count(newVal, oldVal) { // 监听数据变化
},
'obj.age': function(newVal, oldVal) { // 监听对象中的某个键值得变化
}
}
<div>{{num}}div>
num: function() { // 计算属性开始时只计算一次 只有当里面的依赖数据发生变化的时候才会再次执行
// 比如该函数中的count发生变化的时候才会触发
this.count++
var numVal = this.count
return numVal
}
import vueRouter from 'vue-router'
import component1 from '组件文件地址'
const routes = [
{
path: '',
name: '',
component: component1
}
{
path: '',
name: '',
component: import (要懒加载的组件文件地址)
}
]
var router = new vueRouter({
routes,
scrollBehavior (to, from, savedPosition) {
// return 期望滚动到哪个的位置
}
})
<router-link :to="{path: '组件路由地址', query:{键值对}}">router-link>
<router-link :to="{name: '组件路由对象的name', query:{键值对}}">router-link>
<router-link :to="{name: '组件路由对象的name', params:{键值对}}">router-link>
this.$router.push({
path: '路由对象的path',
query: {
键值对
}
})
this.$router.push({
name: '路由对象的name',
query: {
键值对
}
})
this.$router.push({
name: '路由对象的name',
params: {
键值对
}
})
// 全局前置守卫
beforeEach(function(to, from, next){ // 每次路由跳转之前都会触发
// to 是要进入的页面的路由对象
// from 是要离开的页面的路由对象
// 只有执行了next()函数 路由拦截才会继续往下走
// next的参数可以是一个路由对象 也可以是一个地址如果给next传了地址参数 他会跳转到对应的地址页面
next()
})
// 全局的后置守卫
afterEach(function(to,from) { // 这时候页面已经进入 所以不用next()
})
{
path: '/',
component: component,
beforeEnter(to, from, next) { // 进入地址为path 的值得路由的时候才会触发的守卫
}
}
// 组件内的前置守卫
beforeRouteEnter(to, from, next) {
// 注意在该路由守卫中 this的指向不是当前的vue实例化对象
next(arg => {
// 这个参数就是vue的实例化对象
})
}
beforeRouteUpdate(to, from, next) {
// 在当前路由改变,但是该组件被复用时调用
// 可以访问组件实例 `this`
}
beforeRouteLeave(to, from, next) {
// 路由离开前触发的守卫
}