• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
骑着小毛驴过冬的八阿哥
博客园    首页    新随笔    联系   管理    订阅  订阅

Vuejs核心思想学习笔记

习Vue已经有一段时间了,但未对其核心思想作自己的总结和理解

Vue核心思想有两个 : 数据驱动和组件化(系统组件)

数据驱动

   数据驱动目的是让数据和DOM保持同步, 只要修改了data数据,DOM就会做相应的改变。Vue已经将这一逻辑封装好人工无需手动去操作DOM, Vue的数据驱动是利用了Object.defineProperty的特性, 以下使用原生js模拟了Vue的双向数据绑定: 

  

1 <input type="text" id="inputText">
2 <br>
3 <span id="data"></span>
 1 <script type="text/javascript">
 2     var obj = {}
 3     Object.defineProperty(obj, 'username', {
 4       get: function () {
 5         console.log('get')
 6       },
 7       set: function (newVal) {
 8         console.log('set')
 9         console.log(newVal)
10         document.getElementById('data').innerText = newVal
11       }
12     })
13 
14     document.getElementById('inputText').addEventListener('keyup', function (event) {
15       obj.username = event.target.value
16     })
17 </script>

当改变了inputText的值,会自动调用set方法,而不用人工去操作。

 

 

组件化 (化整为零,可复用)

  组件化比较好理解,目前前端项目中已经大量运用了模块化开发,组件化思想是从模块化引伸而来。例如,一个网站首页可以视作一个整体的组件,下图是官网截来.

app视为一个最大的组件,以下有header, content, side三个主要子组件组合而成。画成树状就是右图的组件树, 类似HTML中的DOM树。组件化还有一个特性是可复用  --x性,如下图header作为所有页面的公共头部,除了可以在首页中使用,还可以在其他页面 (如登录页,产品详情页)复用

 

 

posted @ 2018-07-05 14:40  浅草马甲  阅读(257)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3