1) 父向子传值,子返回给父
- 子组件在props中创建一个属性,用以接收父组件传过来的值
- 父组件中注册子组件
- 在子组件标签中添加子组件props中创建的属性
- 把需要传给子组件的值赋给该属性
- 子组件中需要以某种方式例如点击事件的方法来触发一个自定义事件
- 将需要传的值作为$emit的第二个参数,该值将作为实参传给响应自定义事件的方法
- 在父组件中注册子组件并在子组件标签上绑定对自定义事件的监听
2) 祖父子,从祖传给子,再子返回祖,几种方法,哪种最好
- 借助父组件作为通信的桥梁,即分解为两个父子组件通信(此处爷孙组件是无法直接通信的)
- 使用$attrs和$listeners实现祖孙组件之间的数据传递,也就是多重嵌套组件之间的数据传递
(祖组件用于动态数据的绑定与事件的定义 → 父组件通过设置v-bind="$attrs" 和v-on="$listeners"来充当中间人
→ 子组件通过props或者$attrs和$listeners来获取祖组件数据和事件。)
- 借助高级provide,inject以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。(provide 选项应该是一个对象或返回一个对象的函数。)
- 使用vuex【最好】
3) 多个插槽如何区分
- 使用具名插槽【name】子组件中给插槽定义名称,在父组件中使用不同的插槽
4) 动态组件如何绑定A或者B
5) 当import载入的时候是否可以异步?mport和require的相似点和不同点
- Import载入的时候,结合Vue的异步组件和Webpack的代码分割功能,实现路由组件的懒加载。
- import和require的相似点和不同点
相似点:import和require都是可以加载模块的基本语法
不同点:
- Require是运行时加载,import是编译时加载。所以require的引用可以在代码的任何地方,而import语法规范上是放在文件开头。
- Require的模块就是对象,输入时必须查找对象属性。Import则是通过export命令显式指定输出的代码,再通过import命令输入
- Require的本质是赋值过程,而import的本质是解构过程。
- Require是非语言层面的标准。 社区方案,提供了服务器/浏览器的模块加载方案。只能在运行时确定模块的依赖关系及输入/输出的变量,无法进行静态优化。import的语言规格层面支持模块功能。支持编译时静态分析,便于JS引入宏和类型检验。动态绑定。
6) 如何通过路由控制VUE界面
- 如果使用 router-link 组件来导航, 通过传入 ‘to’ 属性指定链接。 <router-link> 默认会被渲染成一个 <a> 标签
- 如果使用模块化机制编程,导入Vue和VueRouter,要调用 Vue.use(VueRouter)
- 定义 (路由) 组件。可以从其他文件 import 进来
- 定义路由。 每个路由应该映射一个组件。 其中"component" 可以是通过 Vue.extend() 创建的组件构造器,或者,只是一个组件配置对象。
- 创建 router 实例,然后传 ‘routes’ 配置
- 创建和挂载根实例。通过 router 配置参数注入路由,从而让整个应用都有路由功能
【通过注入路由器,我们可以在任何组件内通过 this.$router 访问路由器,也可以通过 this.$route 访问当前路由】
7/23
原文:https://www.cnblogs.com/qianqianqian94/p/11237080.html