转自(http://www.cnblogs.com/leolovexx/p/5691402.html)
前端越来越混乱了,当然也可以美其名曰:繁荣。
当新启动一个前端项目,第一件事就是纠结:使用什么框架,重造什么轮子?
PS:大牛留言讨论
那么,希望看完此篇,能够给你一个清晰的认识,或者让你更加地纠结和无所适从 = =!
本篇拿一注册功能作为样本,使用各种框架去实现功能,从而对比各种方式的优劣。
JQuery
<div> <div><input type="text" id"nameIpt"/></div> <div><input type"statusIpt""button" value"save""saveBtn"/></div> </div> <script> $(function () { $("#saveBtn").click(function () { saveToDB($.trim($("#nameIpt").val()),$.trim($("#statusIpt").val())); }) function saveToDB() { //save to db } }) </script>
简单粗暴,用户行为驱动的思考方式,不需要怎么动脑= =!
Vuejs
<div id="demo"> <div> <input v-model"name"></div> <div> <input v-model="status"></div> <div> <input von"click:save()" type"save"></div> </div> <script> var demo = new Vue({ el: '#demo', data: { name: '', status:'' }, methods: { save: function () { saveToDB(this.name, this.status); } } }) function saveToDB(name, status) { //.. //.. } </script>
vuejs给人以小清新的感觉,有没有同感?
Reactjs
var User = function (name, status) { this.name = name; this.status = status; } User.prototype={ save:function(name,status){ //save to db } } var user = new User(); var RegisterComponent = React.createClass({ displayName: "RegisterComponent",getInitialState: function () { return user; },onFirstInputChange: function () { this.setState({name: React.findDOMNode(this.refs.fistInput).value}); },onSecInputChange:function(){ this.setState({status: React.findDOMNode(this.refs.secInput).value}); },save:function(){ //只有不更改input的时候这个返回true,setState之后就成false console.log(this.state===user) //所以使用this.state吧 user.save(this.state.name,this.state.status); },render: function () { return ( <div> <div>name: <input type onChange={this.onFirstInputChange} ref"fistInput".statename /> </div> <div>status: