@ttop5
2021-10-21T17:17:14.000000Z
字数 2460
阅读 572
前端面试
{
path: '/details/:id'
name: 'Details'
components: Details
}
/details/1, /details/2 等都会被映射到Details组件上
this.$route.params.id
隔代组件的通讯方式: EventBus、Vuex、provide/inject(祖先想子孙后代传)
EventBus又称为事件总线,使用:
1.创建一个bus.js(引入 Vue 并导出它的一个实例)
import Vue from 'vue';
export const EventBus= new Vue();
2.在两个组件中引入,并且使用EventBus.on('事件名', callback())来接收
区别:
mixin是对Vue类的options进行混入,可以混入多个mixin;有全局和局部混入;
extend用于创建Vue的子类;
另:extends: https://cn.vuejs.org/v2/api/#extends
用于安装插件,其实就是调用了插件里的install方法
new Vue(options)时,首先会进行初始化,将vue上的属性和options进行合并,在进行事件,生命周期等的初始化。
如果Vue.use()在new Vue()之后执行,初始化时你的插件内容还没有添加到相关的属性中(如Vue.options.components、Vue.options.directives、Vue.options.filters),新初始化的Vue实例中也就不会有插件的内容。
需要在你调用new Vue()启动应用之前完成
用Vue.component()
在注册完一个全局组件后就可以在任何组件中直接使用,而不需要在各个组件中引入并进行局部注册。
1.在conponents目录中存放组件;
2.创建components.js文件;
3.引入所有需要注册的全局组件,并用export(里面用Vue.component('组件名', 组件名))
4.在mian.js中引入omponents.js
components.js代码
import 组件名字A from '@/components/组件名A'
import 组件名字B from '@/components/组件名B'
export default(Vue) => {
Vue.component('组件名A', 组件名A)
Vue.component('组件名B', 组件名B)
}
main.js代码
import components from '@/components/components.js'
Vue.use(components)
new Vue({...})
在main.js中引入,然后Vue.use(ElementUI)
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)