响应式编程已经渗透到很多领域中的编码中,比如RxJava,Vue.js等,当然,目的就是提高编程的效率
起因:
以前我们改变UI的时候,就需要通过Dom来操作UI元素,随着业务的增多,这种方式就显得很笨重了
比如document.getElementById('id')
但页面UI元素过多的时候,无论是更改UI的显示,还是从UI元素读取相应的值,会让我们的编码变得异常臃肿
因此,我们就需要一个更好的方案了
方案:
Angular.js和Vue.js。
相对于Vue.js来说,Angular.js稍显复杂和笨重(毕竟vue比angular少四个字母,手动滑稽),下面我们就简单介绍一下Vue.js的基本原理和用法
基本思想:
它的思想就是通过data与view进行双向绑定,就可以实现UI和和数据的快速互动了(data发生变化,UI就会发生变化;UI发生变化,data也会发生变化),显得很简洁方便
基本原理:
data和view相互通信的关键就是,基于JS的异步事件模型,简单地来说,就是有一个循环事件模型一直在跑,如果相应的事件被触发了,就可以通知到data或者view。(和Android中的Handler,Looper,Message的异步机制感觉很相似)
基本用法,如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>
</head>
<body>
<div id="app">
<p>{{ message }}</p>
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})
</script>
</body>
</html>
来看看下面的代码,很熟悉吧,就是微信小程序的编码,也是采用类似的方案:
image.png image.png总结:
不得不说,这种思想的确先进。
其实,在Android,iOS中,也有这种类似的方案,就是MVVM开发模式,data与UI进行绑定;不过,在Android开发中,鉴于Data一般是bean.java,与一个UI绑定后,扩展性和通用型就会打折扣,这里就不深入讨论了
网友评论