vue知识点
vue优点:轻量型框架只关注视图层,是构建数据的视图集合,大小只有几十kb。简单易学,有益于理解和学习。数据双向绑定,组件化,视图,数据结构分离。运行速度快。
父传子:props,子传父:$emit,兄弟传值:建立中间键
vue-router动态路由,传值:在router目录下index.js文件中,对path属性加上/:id,使用router对象的params.id获取。
v-show和v-if:
共同点:控制元素的显示和隐藏。
不同点:v-show是通过css display:none来隐藏,只编译一次,v-if是通过dom树内动态添加和删除dom,v-if不断地销毁和创建比较消耗性能。
如何让css在组件中起作用:在组件sytle前面加scoped。
keep-alive的作用:是vue的内置组件。可以使用被包含的组件保留状态,避免重新渲染。新加两个属性:include(包含的组件缓存)与exclude(排除的组件不缓存,优先级大于include)
获取dom:ref=“domName”用法:this.refs.domName
vue-loader是一个加载器,用途:js可以写es6、style、样式less、scss、template可以加jade等
key的作用:需要使用key来做每个节点的唯一标识,为了高效的更新虚拟dom。
axios是请求后台资源的模块。js使用import进来,然后.get或.post。成功在then中返回,失败在catch中返回。
v-modal用于表单的数据双向绑定。底层:v-bind绑定value属性,v-on给当前元素绑定input事件。
文件作用:assets文件夹是放静态资源,components是放组件;router是定义路由的配置,app.vue是应用主组件,main.js是入口文件。
computed和watch的使用场景:
computed:一个属性受多个属性影响的时候用computed(购物车的商品结算)
watch:一条数据影响多条数据的时候用watch(搜索数据)
修饰符:
prevent:提交事件不在重新加载页面,stop:阻止单击事件冒泡,seif:事件发生在该元素上,capture:事件监听,事件发生时调用,once只触发一次。
$nextTick:vue数据更新之后,马上获取更新后的值。
data是函数吗?为甚麽?
data写成函数它会以函数的形式返回,相当于每个组件都有私有空间,他们会各自维护数据,不会造成混乱。
渐进式框架:主张少,需求不同选择不同的层级。
vue的数据双向绑定:视图和数据是同步的,数据变化,视图就变。视图变了,数据也变。核心是:Object。defineProperty()方法。
v-for和v-if优先级:v-for比v-if更具有优先级v-if将分别运行在v-for中。
vue核心:
数据驱动:ViewModel,保证数据和视图的一致,
组件系统:应用类UI可以看作全部是由组件树构成的
引进组件的步骤:在template中引入组件,在script的第一行用import引入路径,用component中写上组件名称。
如何解决spa首屏加载慢:安装动态懒加载插件,使用cdn资源。
vue slot:插槽,在什么地方显示,怎么显示。
vue的router-link在安卓上没反应:安装babel polypill插件解决。
vue2中注册router上时间无效方法:使用@click.native。router-link阻止click事件,.native指直接监听一个原生事件。
vue-router用来写路由的一个插件,组件:router-link,router-view。
导航钩子:全局导航钩子;router.beforEach(to,from,next),作用:跳转前进行判断拦截。
vuex:状态管理工具
state:(数据源存放地)
getters:(从基本数据派生出来的数据)
mutations:(同步提交数据)
actions:(异步)
modules:(模块化Vuex)
vue:是mvvm,
与react的区别:vue是双向数据流,react是单向数据流,vue模板提供了指令、过滤器等。
与angular的区别:vue是组件化,模块化。angular没有组件化概念,依赖对数据做脏检查,所以watcher越多越慢。