×

jquery vue react act query

在用react的时候老大不让用jquery,为什么?jquery中使用ajax的几种常用写法

admin admin 发表于2022-07-04 03:09:33 浏览125 评论0

抢沙发发表评论

在用react的时候老大不让用jquery,为什么


看到这个问题,我本身是拒绝的,因为这东西没啥可比性呀,两个东西的定位就是不一样;但是最近一个朋友用VUE写一个项目的时候掺杂了大量的JQ代码,我帮他review的时候,问他为什么要这样,他回答给我的是:『我对JQ比较熟悉呀,VUE不是就是个view吗?』 

开会呢,随便聊一下,虽然vue不是react,但是两者的原理还是基本类似的,我同时对它俩都有一些开发经验;所以下面是我的看法:

  1. react本身是一套前端框架,不像JQ是一套类库

  2. react的原理和驱动是通过store流来进行virtual dom比对后进行渲染,完全不需要本人操作dom树

  3. react官方文档说的很清楚,react已经干了很多jq会做的事情,    你只需要去了解什么是双向绑定,然后用数据驱动、绑定自定义事件就可以了。

  4. 在react中使用JQ,肯定要获取dom节点,也就是必须在组件挂载之后(componentDidMount)后,dom树才会append到页面中,虽然说并无大碍,但是会有一些特殊情况下的冲突,例如:用react和JQ同时操作一个节点的样式的时候,也许就会导致state不同步的问题,这是是最简单的问题请看下面第5条(纯手撸,没测试,!另外就是性能的问题,举一个最简单的例子,没有什么代表性,请想象下,用react和JQ去渲染的分页器,在页面node节点非常多的情况谁的效率会更高《各种浏览器的渲染内核对dom节点都有性能瓶颈,具体请查阅相关文档》?而且如果分页器用JQ实现,分页内容用react实现,JQ每次点击页码的时候先要用react渲染分页内容,然后在重新用JQ设置页码,不麻烦吗?)

    -query

  5. import React, { Component } from ’react’;
    class MyCompnent extends Component {
        constructor(props) {
            super(props);
            this.state = {isHover: false};
            this.onMouseEnter = this.onMouseEnter.bind(this);
        }
        
        componentDidMount() {
            $(“#aaa“).on(’hover’, ()=》 {
                $(this).addClass(’myHover’);
            }); 
        }
        
        onMouseEnter() {
            this.setState({isHover : true});
        }
        
        render() {
            const { isHover } = this.state;
            
            return(
            《div id=“aaa“ onMouseEnter={this.onMouseEnter} className={isHover? ’hover’ : ’’}》《/div》
            );
        }

jquery中使用ajax的几种常用写法


第一种:
$.ajax({
            type: “POST“, //提交方式 post 和 get
            url: “连接地址“,//连接地址
            data: ’{“’ + + ’“}’,//数据类型
            contentType: “application/json;charset=utf-8“,//编码形式
            dataType: “json“, //提交数据类型
            success: function (data) {
                var it = eval(data.d);
                var Html = ““;
                for (var i in it) {}
           }, async: false
        });
第二种:
$(document).ready(function(){
  $(“#a“).click(function(){
  htmlobj=$.ajax({url:“/test.txt“,async:false});
  $(“#b“).html(htmlobj.responseText);
  });
});
第三种:
$.ajax({ url: “abc.html“, context: document.body, success: function(){
        $(this).addClass(“Dmoe“);
      }});

      
     //参考文献:锋利的Jquery  如有疏漏或者错误 还望大家指出

-act

常用的JQuery UI 框架,工作用常用的,请大神们指点


jquery
easyui,时下比较流行的,而且可以免费使用,datagrid功能强大
jquery-ui,也是免费,但是用起来总觉得差点什么,渲染速度有些慢,ui也没有easyui丰富
miniui,后出现的一个ui,我也只是看过demo感觉是不错,可惜收费使用,价格不低
自己开发玩玩还是用easyui吧。
-query