插槽
# 插槽
# slot
帮助我们传递插槽中的内容到父组件
- 插槽的内容 如果不指定 传入的是默认插槽
- 具名插槽 是指定名字的插槽
- 通过 v-slot:default 的方式来放入指定插槽内
<template v-slot:default></template>
<template #default></template>
# Vue router
- vue-router 提供了三种路由模式
- hash 默认值 路由从地址栏中的 hash 部分获取路径,改变路径也是改变 hash 部分的路径,该模式兼容性最好。
- history 路由从浏览器地址栏的 location.pathname 获取,改变路径使用的是 H5 的 location Api location.pushState(null,null,'/about')
- abstract 路由从内存中获取路径,改变路径也只是改动内存中的值 通常用在非浏览器环境中。
# 知识点
1、vue 中开启 Css Module
- 将文件命名为 xxx.module.css 即可
2、得到组件生成的根 dom
export function getComponentDom(comp, property) {
const vm = new Vue({
render: (h) => h(comp, { props: property }),
});
vm.$mount();
// console.log(vm);
return vm.$el;
}
3、向实例注入成员
Vue.prototype.$show = xxx;
4、ref 组件或 dom 元素属性 refs = ""
# axios 可以拦截请求
Interceptors http://www.axios-js.com/docs/
# 组件声明周期
- beforeCreate || --> 注入
- created || --> 生成 VNode
- beforeMount || --> 挂载 --> 数据更新 |--> 触发 beforeUpdate -->更新完成 |--> 触发 updated --> 重新挂载
- mounted ||
- beforeDestroy ||
- destoryed
# 指令
# 定义指令
- 全局定义
Vue.directive('myDirective',{
binding(el,binding){
}
inserted(el,binding){
}
update(){
}
})
# 组件混入
mixins:[] 可通过导出一个对象来混入公共代码 或者导出一个函数返回一个对象的方式混入代码
# 组件递归
- 设置组件的 name 属性
- 在需要嵌套循环的地方使用该 name name="CorlorList"
# 监听器 watch
watch:{
$route:{
handler(){
},
immediate:true|false //表示是否初始化立即执行一次
deep:true|false, 是否监听数据内部属性的变化
}
}
# 小技巧
- 如何点击分页的时候滚动条滚动到顶部 this.$refs.scrollView.scrollTop = 0
- 平滑的滚动 css scroll-behavior:smooth
# Vue 动态传入组件
- 实验一 设计一个中间件 MidWare 通过获取组件根 dom 、 v-html 指令来动态传入组件 获取 outerHTML
# $listener
$listeners 可以获取到父组件传入子组件的事件
# v-model
双向绑定 实质就是 <input :value="xxx" @input="$event.target.value" />
# 组件通信
- props
- router
- event($emit)
- $listeners
- $refs
- 事件总线 new Vue({})[ $on $off $emit]