1, v-show指令,v-if的区别
都是渲染指令。
v-show: 通过设置css的display值为none,block来 显示或者隐藏;
v-if: 真实的删除和增加DOM元素
2,如何让css只在当前组件中起作用
每一个组件中都可以设置js、css,如果希望组件内的css只对当前组件生效,增加scoped即可,设置<style scoped> </style>
3,指令keep-alive
如果把切换出去的组件保留在内存中,可以保留它的状态或避免重新渲染,为此可以添加keep-alive指令
<keep-alive>
component...
</keep-alive>
应用举例: 新闻列表-> 详情页面->返回列表页面;
缺点: 并不能保证返回的位置,只能返回到顶部;
github上有个插件可应用: vue-navigator
4, 组件的编写方式
全局组件和局部组件
Vue.component('mine',{
template: '',
props: {}
})
var vm = new Vue({
el: '#app',
component: 'mine'
})
5, vuejs的特性及优点
数据改变--> 视图改变
视图改变---> 数据改变
优点:
低耦合
可重用
独立开发
可测试性
虚拟dom
组件化
简洁:页面由HTML模板+Json数据+Vue实例组成
数据驱动:自动计算属性和追踪依赖的模板表达式
组件化:用可复用、解耦的组件来构造页面
轻量:代码量小,不依赖其他库
快速:精确有效批量DOM更新
模板友好:可通过npm,bower等多种方式安装,很容易融入
6,框架对比
Vue.js 和 AngularJS 之间的区别是什么?
下面是一些选择Vue 而不是 Angular 的可能原因;
Vue.js 是一个更加灵活开放的解决方案。它允许你以希望的方式组织你的应用程序,而不是任何时候都必须遵循 Angular 制定的规则。它仅仅是一个视图层,所以你可以将它嵌入一个现有页面而不一定要做成一个庞大的单页应用。在结合其他库方面它给了你更大的的空间,但相应,你也需要做更多的架构决策。例如,Vue.js 核心默认不包含路由和 ajax 功能,并且通常假定你在用应用中使用了一个外部的模块构建系统。这可能是最重要的区别
在API 和内部设计方面,Vue.js 比 Angular 简单得多, 因此你可以快速地掌握它的全部特性并投入开发。
Vue.js 拥有更好的性能,因为它不使用脏检查。当 watcher 越来越多时, Angular 会变得越来越慢,因为作用域内的每一次数据变更,所有的 watcher 都需要被重新求值。Vue 则根本没有这个问题,因为它采用的是基于依赖追踪的观察系统,所以所有的数据变更触发都是独立的,除非它们之间有明确的依赖关系。
Vue.js 中指令和组件的概念区分得更为清晰。指令只负责封装 DOM 操作,而组件代表一个自给自足的独立单元 —— 它拥有自己的视图和数据逻辑。在 Angular 中它们两者间有不少概念上的混淆。
Vue.js 和 React.js 有什么区别?
React.js 和 Vue.js 确实有一些相似——它们都提供数据驱动、可组合搭建的视图组件。然而,它们的内部实现是完全不同的。React 是基于 Virtual DOM——一种在内存中描述 DOM 树状态的数据结构。React 中的数据通常被看作是不可变的,而 DOM 操作则是通过 Virtual DOM 的 diff 来计算的。与之相比,Vue.js 中的数据默认是可变的,而数据的变更会直接出发对应的 DOM 更新。相比于 Virtual DOM,Vue.js 使用实际的 DOM 作为模板,并且保持对真实节点的引用来进行数据绑定。
Virtual DOM 提供了一个函数式的描述视图的方法,这很 cool。因为它不使用数据观察机制,每次更新都会重新渲染整个应用,因此从定义上保证了视图通与数据的同步。它也开辟了 JavaScript 同构应用的可能性。
实话实说,我自己对React 的设计理念也是十分欣赏的。但 React 有一个问题就是组件的逻辑和视图结合得非常紧密。对于部分开发者来说,他们可能觉得这是个优点,但对那些像我一样兼顾设计和开发的人来说,还是更偏好模板,因为模板能让我们更好地在视觉上思考设计和 CSS。JSX 和 JavaScript 逻辑的混合干扰了我将代码映射到设计的思维过程。相反,Vue.js 通过在模板中加入一个轻量级的 DSL (指令系统),换来一个依旧直观的模板,且能够将逻辑封装进指令和过滤器中。
React 的另一个问题是:由于 DOM 更新完全交由 Virtual DOM 管理,当你真的想要自己控制 DOM 是就有点棘手了(虽然理论上你可以,但这样做时你本质上在对抗 React 的设计思想)。对于需要复杂时间控制的动画来说这就变成了一项很讨人厌的限制。在这方面,Vue.js 允许更多的灵活性,并且有不少用 Vue.js 构建的富交互实例