MVC模式

MVC模式

以往的MVC模式是单向绑定,即Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新

MVVM模式

MVVM模式就是Model–View–ViewModel模式。它实现了View的变动,自动反映在 ViewModel,反之亦然。
我对于双向绑定的理解,就是用户更新了View,Model的数据也自动被更新了,这种情况就是双向绑定。再说细点,就是在单向绑定的基础上给可输入元素(input、textare等)添加了change(input)事件,(change事件触发,View的状态就被更新了)来动态修改model。
MVVM模式

双向绑定原理

vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。
我们已经知道实现数据的双向绑定,首先要对数据进行劫持监听,所以我们需要设置一个监听器Observer,用来监听所有属性。如果属性发上变化了,就需要告诉订阅者Watcher看是否需要更新。因为订阅者是有很多个,所以我们需要有一个消息订阅器Dep来专门收集这些订阅者,然后在监听器Observer和订阅者Watcher之间进行统一管理的。接着,我们还需要有一个指令解析器Compile,对每个节点元素进行扫描和解析,将相关指令(如v-model,v-on)对应初始化成一个订阅者Watcher,并替换模板数据或者绑定相应的函数,此时当订阅者Watcher接收到相应属性的变化,就会执行对应的更新函数,从而更新视图。因此接下去我们执行以下3个步骤,实现数据的双向绑定:

1.实现一个监听器Observer,用来劫持并监听所有属性,如果有变动的,就通知订阅者。

2.实现一个订阅者Watcher,每一个Watcher都绑定一个更新函数,watcher可以收到属性的变化通知并执行相应的函数,从而更新视图。

3.实现一个解析器Compile,可以扫描和解析每个节点的相关指令(v-model,v-on等指令),如果节点存在v-model,v-on等指令,则解析器Compile初始化这类节点的模板数据,使之可以显示在视图上,然后初始化相应的订阅者(Watcher)。

戳我阅读全文 »

由于暑假团队用vue做项目时,用到的钩子函数也只有mounted,(部分如下),主要是用来向后台请求数据。 其他的也没用到,而且当初对vue的生命周期也不理解,所以最近看了一些相关的文档,总结一下自己的收获,方便日后再次查阅。

1
2
3
4
5
6
7
8
9
10
11
12
mounted () {
// 向后台请求创建智能视图的限制条件
this.$store.dispatch('getSearchConditions').then(() => {
this.$store.dispatch('openFile').then(() => {
// 向后台请求创建智能视图的限制条件
this.$store.dispatch('getSearchConditions').then(() => {
// 获取导入 Excel 表格的可选择磁盘
this.$store.dispatch('getImportTargetDisks')
})
})
})
}
戳我阅读全文 »

按照惯例,先演示一下成果。


哈哈,看着还是很炫酷的,虽然内容大部分是官方包里的东西。但是也有自己的努力啦。

一. 下载Unity3D 4.6.0版本

  • 官网即可下载。这里贴一个学长给的博客,里面有具体的windows版本的破解文件和Unity3D文件。
    windows特别容易破解,毕竟windows的市场那么大,当然破解的也多。但是对于mac os系统来说就太难了,找到破解文件很难,又得经过很多设置才行。不过还好找到了一个网站,真是大神给的福利啊。上面各种版本的Unity3D的破解文件都有,windows和mac的版本都有。而且还有具体的方法。这里必须要安利一下。
    全系列Unity4.x.x到5.4.2破解Win&Mac! 这么好的东西当然得分享啦。
    戳我阅读全文 »

话不多说,先上演示视频。

  • 怎么样,全程电脑自动操作,我的鼠标可是没点击任何按钮。看起来是不是很高大上呢。
    最后计算的学年绩点就在运行框中(3.32…请不要嘲笑我这个学渣。)
    (话说博主为了上传这个视频也是费尽心血,花费好几天才上传成功)。

Step

Step 1

  1. 安装pycharm,创建.py文件即可写python
  2. 下载phantomJS(无界面爬虫) 或者下载 chromedriver(有界面爬虫) 百度即可下载到

Step 2

  • phantomJS+ selenium实现无界面对网站爬虫,爬取教务处成绩。先根据路径打开phantomJS
    1
    2
    3
    # open phantomjs
    phantomjs_path = '/Users/xuyunfang/Downloads/phantomjs-2.1.1-macosx/bin/phantomjs'
    driver = webdriver.PhantomJS(phantomjs_path)
戳我阅读全文 »

先上效果图

屏幕快照 2016-10-28 下午11.59.47 上午.png
怎么样,是不是和淘宝登录页面高度相仿了呢。

一. 下载webstorm

  • 官网即可下载,但是由于没有破解,应该30天后就要到期了。看来有空得去找方法破解,不然以后怎么开开心心的学前端呢。

  • 新建工程,在工程中新建
    html+css+javascript文件。

师学长给我们讲了具体怎么新建文件,以及怎么部署整个布局,什么是标签等。让我第一次真正的认识到了什么是web开发。

关于安利

  • 按照惯例,先安利一波觉得一些讲的很好的博客或者其他的。
  1. 很全的web开发教程,学长倾力推荐的.这个讲的很全面,我自己有时间一定要多看看。

  2. HTML页面跳转的5种方法.自己也是参考了里面的一些东西,并更改了一些内容,才做好的

    戳我阅读全文 »

一. 前言

  • 搭建了几天的Gitpages,终于搞得差不多了,先呱唧呱唧。

二. 干了这碗鸡汤

心得

  • 这是我的第一篇博客。虽然搭建平台的过程是痛苦的,但是我还是很享受这其中的滋味。天天坐在电脑前,一步一步的更改gitpages上的每一个组件,每当看到更新后的效果,我都很开心。因为这是我翻遍了一些大神的博客,翻遍了知乎的解答后,渐渐摸索出来的。

    (以下是我参考的一些博客,都很有用处,还有很多找不到了。)

  1. hexo+github搭建个人博客.这个很具体的教你怎么做,我也从中学到了许多。我也是看到他里面有网易云音乐,才激发我的兴趣,自己搞一个。
  2. 多说论坛.
  3. NexT主题配置文档.这个特别有用处。
  4. 为博客文章增加阅读量功能.这个以后我会改进此功能。
    戳我阅读全文 »