Vue.js中计算属性是怎么知道它wpf 依赖属性的数据的

在模板中表达式非常便利,但是它们实际上只用于简单的操作。模板是为了描述视图的结构。在模板中放入太多的逻辑会让模板过重且难以维护。这就是为什么 Vue.js 将绑定表达式限制为一个表达式。如果需要多于一个表达式的逻辑,应当使用计算属性。
基础例子 id="example"&
a={{ a }}, b={{ b }}&
var vm = new Vue({
el: '#example',
data: {
computed: {
b: function () {
return this.a + 1
}})
a={{ a }}, b={{ b }}
这里我们声明了一个计算属性 b。我们提供的函数将用作属性 vm.b的 getter。
console.log(vm.b) vm.a = 2console.log(vm.b)
你可以打开浏览器的控制台,修改例子的 vm。vm.b 的值始终取决于 vm.a 的值。
你可以像绑定普通属性一样在模板中绑定计算属性。Vue 知道 vm.b 依赖于 vm.a,因此当 vm.a 发生改变时,依赖于 vm.b 的绑定也会更新。而且最妙的是我们是声明式地创建这种依赖关系:计算属性的 getter 是干净无副作用的,因此也是易于测试和理解的。
计算属性 vs. $watchVue.js 提供了一个方法 $watch,它用于观察 Vue 实例上的数据变动。当一些数据需要根据其它数据变化时, $watch 很诱人 —— 特别是如果你来自 AngularJS。不过,通常更好的办法是使用计算属性而不是一个命令式的 $watch 回调。考虑下面例子:
id="demo"&{{fullName}}&
var vm = new Vue({
data: {
firstName: 'Foo',
lastName: 'Bar',
fullName: 'Foo Bar'
}})vm.$watch('firstName', function (val) {
this.fullName = val + ' ' + this.lastName})vm.$watch('lastName', function (val) {
this.fullName = this.firstName + ' ' + val})
上面代码是命令式的重复的。跟计算属性对比:
var vm = new Vue({
data: {
firstName: 'Foo',
lastName: 'Bar'
computed: {
fullName: function () {
return this.firstName + ' ' + this.lastName
}})
更好,不是吗?
计算 setter计算属性默认只是 getter,不过在需要时你也可以提供一个 setter:
computed: {
fullName: {
get: function () {
return this.firstName + ' ' + this.lastName
set: function (newValue) {
var names = newValue.split(' ')
this.firstName = names[0]
this.lastName = names[names.length - 1]
}}
现在在调用 vm.fullName = 'John Doe' 时,setter 会被调用,vm.firstName 和 vm.lastName 也会有相应更新。
关于计算属性背后的原理和技术细节详见响应系统介绍中的。
微信扫一扫,支持 Vue.js :)vue.js 列表绑定数据后再显示可以么_百度知道
vue.js 列表绑定数据后再显示可以么
提问者采纳
至于js的话;):$(&quot,动态添加进去的tr不能应用js和css,再调用一下$(&quot,在绑定事件的时候用这种情况很简单.addClass(&quot.live(funtion(){ }) 这样就可以了,在tr添加进页面后;);tr&样式名& 重新给他添加一下样式即可;);tr&quot
来自团队:
其他类似问题
为您推荐:
vue的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您当前位置: &
[ 所属分类
| 时间 2015 |
作者 红领巾 ]
前几天刚看了,仅仅是看了 reactjs
,偶尔看到了 vuejs
,都说像 angularjs
,好吧果然就是。
选择 Vue 而不选择 Angular,有下面几个原因,当然不是对每个人都适合:
在 API 与设计两方面上 Vue.js
都比 Angular
简单得多,因此你可以快速地掌握它的全部特性并投入开发。
Vue.js 是一个更加灵活开放的解决方案。它允许你以希望的方式组织应用程序,而不是任何时候都必须遵循 Angular 制定的规则。它仅仅是一个视图层,所以你可以将它嵌入一个现有页面而不一定要做成一个庞大的单页应用。在配合其他库方面它给了你更大的的空间,但相应,你也需要做更多的架构决策。例如,Vue.js 核心默认不包含路由和 Ajax
功能,并且通常假定你在应用中使用了一个模块构建系统。这可能是最重要的区别。
Angular 使用双向绑定,Vue 也支持双向绑定,不过默认为单向绑定,数据从父组件单向传给子组件。在大型应用中使用单向绑定让数据流易于理解。
在 Vue.js 中指令和组件分得更清晰。指令只封装 DOM 操作,而组件代表一个自给自足的独立单元 —— 有自己的视图和数据逻辑。在 Angular 中两者有不少相混的地方。
Vue.js 有更好的性能,并且非常非常容易优化,因为它不使用脏检查。Angular,当 watcher 越来越多时会变得越来越慢,因为作用域内的每一次变化,所有 watcher 都要重新计算。并且,如果一些 watcher 触发另一个更新,脏检查循环 (digest cycle)
可能要运行多次。 Angular 用户常常要使用深奥的技术,以解决脏检查循环的问题。有时没有简单的办法来优化有大量 watcher 的作用域。Vue.js 则根本没有这个问题,因为它使用基于依赖追踪的观察系统并且异步列队更新,所有的数据变化都是独立地触发,除非它们之间有明确的依赖关系。唯一需要做的优化是在 v-for
上使用 track-by
有意思的是,Angular 2 和 Vue 用相似的设计解决了一些 Angular 1 中存在的问题。
本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程
转载请注明本文标题:本站链接:
分享请点击:
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
一个人如果只遵照他的内心去活着,他要么成为一个疯子,要么成为一个传奇!
手机客户端
,专注代码审计及安全周边编程,转载请注明出处:http://www.codesec.net
转载文章如有侵权,请邮件 admin[at]codesec.net各种前端javascript框架层出不穷,眼花缭乱,今天就来个小总结。
angularjs:
angularjs是目前所有前端框架中,最为流行的一个。一方面,是因为angularjs的确是革命性的,另一方面,这个框架式google出品。
因此,围绕着angularjs已经形成了相当完善的生态环境。例如angular-ui,angular-bootstrap等等。
angularjs的directive非常之强大,是angularjs的核心。
通常,人们对angularjs主要有几点不爽:
1、引入了太多概念,导致复杂度非常之高;实在是太复杂
2、效率较低,在一般的性能评测中,通常都排在最后;
3、内部各种名词功能重叠,service,factory,等
太大,太大,还是太大
emberjs是rails的开发者和jquery的开发者发起的,因此,也得到了很多人的使用,目前稳定版本是1.5版本。
与其他框架相比,emberjs实在是太大了。
emberjs需要依赖jquery,需要handerbar,甚至还有自己的emberjs data,这些文件加起来,已经超过500kb了。
同时,emberjs很繁琐,学习成本也很高。
backbone:
简单。功能较弱,没有双向绑定。不过backbone出来的时间最早,因此,有很多第三方的基于backbone的库来实现这些功能,例如backbone.marionette
这是我最近才看到的javascript框架,第一眼就喜欢上了。
这个框架和angular很像,当时要比angularjs简单很多。我认为,这个框架将是javascript前端框架的终极选择。
Related posts:
此条目发表在
分类目录,贴了 ,
标签。将加入收藏夹。
基于bae的flaskbbs
Random Tech Thoughts
一个基于flask框架的bbs}

我要回帖

更多关于 依赖项属性 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信