VUE题目
1,组件传值
- 父组件与子组件传值
//父组件通过标签上面定义传值
<tempalte>
<Main : obj = "data"></Main>
</template>
<script>
//引入子组件
import Main from "./Main"
export default{
name : "father",
data(){
return{
data : "向子组件传值"
}
}
//初始化组件
components : {
Main
}
}
</script>
<template>
<div>{{data}}</div>
</tempalte>
<script>
export dafault{
name : "son",
props : ["data"]
}
</script>
- 子组件向父组件传值
<template>
<div v-on : click = "events"></div>
</template>
<script>
//引入子组件
import Main from "./Main"
export default{
method : {
events : function(){
}
}
}
</script>
<template>
<div>{{data}}</div>
</tempalte>
<script>
export dafault{
name : "son",
//接受父组件传值
props : ["data"]
}
</script>
2,vue生命周期的理解
总共分为8个阶段,创建前后,载入前后,更新前后,销毁前后
- 创建前后:在beforeCreate阶段,vue实例的挂载对象el和数据对象data都为underfined,还未初始化。在created阶段,vue实例的数据对象data有了,el还没有
- 载入前后:在beforeMount阶段,vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点,data.message还未替换。在mounted阶段,vue实例挂载完成,data.message成功渲染
- 更新前后: 当data变化时,会触发beforeUpdate和update方法
- 销毁前后:在执行destory方法后,对data的变化不会再触发周期函数,说明此时vue实例已经结婚粗了事件监听以及和dom的绑定,但是dom结构依然存在
3,vue的优缺点
- 优点
- 低耦合:视图可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当Model变换的时候View也可以不变
- 可重用性:你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑
- 独立开发:开发人员可以专注与业务逻辑和数据的开发,设计人员可以专注与页面设计,使用Expression Blend可以很懂以设计页面并生成xml代码
- 页面并不好测试,但是现在测试可以针对ViewModel来写
- 缺点
- 暂无
4,路由跳转
- 声明式(标签跳转):
<router-link : to = "index">
- 编程式(js跳转) :
router.push('index')
5,创建自己的组件
- 在components目录新建你的组件文件(indexPage.vue),script一定要export default{}
- 在需要用的页面(组件)中导入:import indexPage from ‘@/components/indexPage.vue’
- 注入到vue的子组件的components属性上面,components:{indexPage}
- 在template视图view中使用
6,vue如何实现按需加载配合webpack设置
- webpack中提供了require.ensure()来实现按需加载。将引入路由由import改为const
- 不进行页面按需加载引入方式:
import home from '../../common/home.vue'
- 进行页面按需加载的引入方式:
const home = r => require.ensure([],() => r(require('../../common/home.vue')))
7,MVVM模式
MVVM全称是Model-View-ViewModel;vue是以数据为驱动的,一旦创建dom和数据就保持同步,每当数据发生变化时,dom也会变化。DOMListeners和DataBindings是实现双向绑定的关键。DOMListeners监听页面所有View层DOM元素的变化,当发生变化,Model层的数据随之变化;DataBindings监听Model层的数据,当数据发生变化,View层的DOM元素随之变化。
8,v-model是什么?vue中标签则么绑定事件?
v-model这个指令只能用在表单元素上,可以用它进行双向绑定。绑事件:<input @click = doLog()/>
9,vue中自定义指令的方法有哪些?它有哪些钩子函数?还有哪些钩子函数参数?
- 全局指令定义:在vue对象的directive方法里面有两个参数,一个是指令名称,一个是函数。组件内定义指令(局部定义指令):directives
- 钩子函数:
bind(绑定事件触发),inserted(节点插入的时候触发),update(组件内相关更新),componentUpdated(被绑定元素所在模板完成一次更新周期时调用),unbind(只调用一次,指令与元素解绑时调用)
- 钩子函数:el,binding
10,说出四种vue当中的指令和它的用法
v-if
:判断是否隐藏;v-for
:数据循环出来;v-bind:class
:绑定一个属性;v-model
:实现双向绑定