提问者:小点点

在大部分react页面中使用Jquery代码


我是一个很新的反应,我不得不在大多数页面上使用一些Jquery代码行。 现在,我已经在ComponentDidMount()上编写了代码,我已经在每隔一页上编写了这段代码。 这意味着,如果我必须改变什么,我必须改变它在所有其他页面上。 什么方式更好地将这些代码放在一个页面上,并将这些代码导入到每一个需要的页面上?

这是jquery代码,

$(document).ready(function () {
      var getOffset = "";
      $('.table-responsive').on('scroll', function () {
        getOffset = $('.table').position().top;
        console.log(getOffset);
        $('.radius-wrapper').css('top', getOffset + 48);
      });
 });

共2个答案

匿名用户

我以前没有使用过jquery,但是从代码可重用性的角度来看,我将重复的代码封装在一个函数中,如下所示:

export const myHelper = () => {
      var getOffset = "";
      $('.table-responsive').on('scroll', function () {
        getOffset = $('.table').position().top;
        console.log(getOffset);
        $('.radius-wrapper').css('top', getOffset + 48);
      });
}

然后,您可以将该函数导入到需要它的每个组件中,如下所示:

import { myHelper } from '/utils/helper'

然后,如果需要更改它,只需在util库中更改它,然后在任何导入它的地方都将有新代码

匿名用户

您可以在目录中的任何位置使用包含重复代码行的单独文件。
假设您在项目根目录中创建了一个名为functions.js的文件,如下所示:

function myFunction() {
    //write any lines of code here for example a console.log
    console.log("My function has been executed")
}
export { myFunction }

然后您必须将其导入到您需要的任何文件中

import React, { Component } from "react"
import { myFunction } from "/functions"

class ComponentName extends Component {
    componentDidmount() {
        //Execute the function you imported from the functions.js here
        myFunction()
    }
    render() {
        return <h1>Hello World !</h1>
    }
}

运行前面的代码并在控制台中查看,您将发现

My function has been executed

从myFunction的执行中打印出来,您可以在其他组件中执行相同的操作,并且您将找到相同的结果,现在您必须在functions.js中更改一次代码,您将在所有组件中找到结果