• 对比Jquery和Vue实现Todolist


    Vue是MVVM设计模式的前端框架,其实现Todolist相比于通过Jquery操作Dom来实现的方法是非常简洁的。下面我就来对比下这两种方法。

    Vue实现

    <body>
    //View层,既视图层
    	<div id='app'>
    		<input type="text" v-model="inputValue"/><br>
    		<input type="text" v-model:lazy="inputValue"/>
    	    <button v-on:click="handleBtnClick">点击</button>
    		<ul>
    			<li v-for="item in list">{{item}}</li>
    		</ul>
    	</div>
        <script>
        	var app = new Vue({
        	//Model层,既数据层
        		el: '#app',
        		data: {
        			list: [],
        			inputValue:''
        		},
        		methods: {
        			handleBtnClick: function () {
        				this.list.push(this.inputValue)
        				this.inputValue = ''
        			}
        		}
    
        	})
        </script>
    </body>
    
    可以看到,vue实现todolist仅仅是对Model层进行的操作,既对数据进行操作,在操作完成后,vue内置的ViewModel层会自动对数据进行处理,将结果映射在body中的View层上,如下图所示img1

    Jquery实现

    <body>
    //View层,既视图层
        <div>
            <input id="input" type="text"/>
            <button id="btn">提交</button>
            <ul id="list"></ul>
        </div>
        <script>
            function Page(){
    
            }
            //Presenter层,既控制器层
            $.extend(Page.prototype, {
                init: function(){
                    this.bindEvents()
                },
                bindEvents: function(){
                    var btn = $("#btn");
                    btn.on('click', $.proxy(this.handleBtnClick, this))
                },
                handleBtnClick: function(){
                    var inputElem = $("#input");
                    var inputVal = inputElem.val();
                    var ulElem = $("#list");
                    ulElem.append('<li>' + inputVal + '</li>');
                    inputElem.val('');
                }
            })
    
            var page = new Page();
            page.init();
        </script>
    </body>
    
    利用Jquery对页面进行Dom操作从而实现todolist这其实是一种MVP设计模式(Model,Presenter,View),但是这个实现中没有调用ajax请求获取数据,是控制器层直接对Dom进行操作的,所以Model层可以忽略,如图所示。

    img2

    可以看出MVP设计模式中核心就是Presenter层,它里面放的业务逻辑是视图层与模型层的桥梁,既MVP设计模式大量的代码都是对Dom进行操作,对比MVVM设计模式,后者仅仅是对Model层的数据进行操作,同时页面上数据改变时也会影响Model层,既数据的双向绑定,这种模式大大简化了代码逻辑,减少了代码数量,对大型项目实现了很好的代码优化。
  • 相关阅读:
    CentOS安装
    java字符串
    h5弹球对战游戏
    看是否健康
    layui社区源码笔记之fly-list
    layui社区源码笔记之user-rank
    layui社区源码笔记之layui-input form
    layui社区源码笔记之fly-tab
    layui社区模板主页框架分析
    分组答辩小程序
  • 原文地址:https://www.cnblogs.com/lfnumber7/p/12543579.html
Copyright © 2020-2023  润新知