2022毕业设计-编程日记

22.02.28周一

昨天看了一个全栈实战视频,成功开启了后端服务器,把数据库的数据展示在了localhost上;再转战前端,使用react-umi框架,虽然html、css的语法在寒假学尚硅谷react教程时就基本懂得了,但是还是一直无法连通api接口调得localhost的数据。
另外,今天学习的时间确实过长了,一整天的promise、fetch学下来,代码还是不是出错就是版本过低。故明天,为了调整心态、提高真正的学习效率,要做到两点,一是控制学习不能太长,二是看一些官方完整版的技术视频,不要图时间段就看自媒体的,因为确实没什么用。

22.03.01周二

早上10点半,跟着“Umi 3+Dva入门实践”的教学视频(umi与Dva结合传递数据仓库model.ts)敲了一个早上的代码,明明代码敲得一模一样,但是转到/users后就是一片空白。
网上umi视频教程特别少,除了上面提到的这个,在B站上也搜不到其他篇幅完整的umi视频,就好像小说《鲁滨孙漂流记》里的星期五,只能跟着流落荒岛的鲁滨孙一个人学习,失去了比较、参考的机会,学习回报率极低,甚至可以说没有一点希望,所以基本上决定放弃umi这个框架了。
但是回过头来,返回到create-react-app,进入vscode的App.js文件中,不知道是什么插件作祟,居然会自动把return内的html标签拆解掉,好好的首行缩进被拆解得齐头并进,也根本无法进行后面的学习。
中午和陈师兄交流,他说现在生产模式的教学网站已经改用umijs3.0而不是2.0了,还推荐我学习midway框架。然后还让我改js为jsx后缀,和安装javascriptreact插件来解决App.js自动解除格式化的问题。也要感谢中午的时候,阿龙帮我一起思考了上面的这个问题。
下午攀树课结束后来到图书馆,学习了视频“React中Axios库的封装和使用”,这里除了基本的get、post方法,还涉及到了一点Axios的源码教学。视频学了一半,虽然成功在httpbin.org上get、post了数据,但是和本地服务器做(跨域)数据交互时,还是被拒绝(has been blocked by CORS policy),好像又要学一门nginx技术。晚课结束后,还要就这个问题继续努力。
晚上下课回宿舍后,把“Axios”视频看完,在服务端配置了COSR插件,终于实现了前后端的数据交互!马上又研究了组件的this.state属性,把axios返回的数据用setState更新到了this.state属性上,最后成功把交互数据在render函数内的return方法里调用了。
实现了这前后端项目基础的最后一环后,感到浑身轻松了不少,有希望明天就把反馈功能完成。当然,完成和主站点分立的反馈界面后也要注意,主站点的答题系统是基于react-umi2.0或者3.0框架开发的,以后如果要实现别的功能,肯定还是躲不开和umi这个“野孩子”的交流;或者,明天也可以试试直接用umi实现反馈。

22.03.02周三

早上都在处理后端数据result,result的格式是[{},{},{}],我好久才意识到这是列表,而不是数组。后来令products=result.data,格式依然是[{},{},{}],{}里面是对象,然后用products[0].id或者products[1].content_text就可以取出对象的值value。但是这时需要面对一个新问题:products在第一次渲染html时是没有值的,因为前端还没有请求到后端数据,这时products也是空的,不能用[n]来取特定位置的对象,于是报错:Cannot read properties of null。这时我考虑在<script>里写js的if条件语句,判断products有值了再渲染页面,但是,要如何把<script>内的信息传递到外面、并填充到特定的标签里呢?貌似在主组件里,使用getelementbyid.innerHTML可以实现,但是在子组件里,此方法无法找到外面的标签,卡壳到了中午两点。
下午在图书馆,为了处理“Objects are not valid as a React child (found: object with keys {id}). If you meant to render a collection of children, use an array instead.”
的问题,学习了JSON格式和react router dom。
终于,在晚课前制定出了“三步走”计划:先在render里创造函数,用products[n]方法从列表[{},{},{}]中取出独立的元素{},再用stringify把对象{}转化成字符串str并放入数组Arr中(即把对象集合products拆分开),最后就能用map函数逐个打印。
晚课是大数据分析与工业建模,课堂上,老师简单讲解了他个人官网的js代码,pandas的用法,各种语言、框架在菜鸟教程或官方文档的说明书,一步一步把我们领进门,讲的很多东西也对我的毕设作业有帮助。
晚上在宿舍,发现三步走计划里,把对象转换成字符串这一步操作其实是多余的,因为对象也可以直接被map方法遍历到<li>标签里。之后熟悉了一下css的操作,对dev、span标签和 HTML DOM的认识更加全面了。
明天要解决的问题,是类似于“高度浮动,水平靠左”之类的css复合要求,还有3000字左右的毕设综述,综述对于我的毕设作业是十分必要的——我大可以从数据库中的数据结构和逻辑关系入手,厘清feedback反馈模块所涉及到的表和数据。

22.03.05周六

中午研究navicat的mysql存储逻辑,和陈师兄一起寻找反馈信息的位置(transcript),还发现原来navicat每页最多显示1000行数据。下午调试后端时,因为在控制器、路由取名不规范(好像不能加大小写、下划线),损坏了egg框架的index.d.ts文件,只好把egg重新下载(重新安装依赖和egg-mysql和egg-cors插件)。晚上踢了会足球回来,开始用数据结构的算法思想研究mysql逻辑,终于成功后,又开始研究图表echarts的用法。

22.03.07周一

图片.png

await会保证axios.get拿完数据再进行其他操作,而不会跳过get操作;
调用setState,会先跳过setState后面的内容,立即重新调用render渲染,但是渲染伊始会先更新状态state,render渲染完后再执行setState的剩余内容。

22.03.10周四

如何在html里点击按钮动态插入组件?其实可以换一个思路——动态插入新的路由界面,但是这样会把之前路由界面覆盖。
Route只有写在最外层组件有用,若写在子组件内,点击NavLink后会闪退。解决方法是追问前因后果把路径写完整——NavLink to="/exercise/films"而不是NavLink to="/films"。
在父组件中,如何用NavLink直接通知子组件更新自己的state?这样,即使不在父组件中挂载子组件,也能把信息交给子组件;如果用正常的props传值,会导致子组件刚开始渲染时props为空而报错。
如何用axios向服务器传递数组key_question?————
改egg路由后,框架无法自动识别service或者controller的新名字(内置路由函数不更新)————

22.03.12周六

父组件如何调用子组件的函数? ————直接渲染子组件,自然就能用子组件的函数了——ReactDOM.render(<Chart summation={this.state.summation}/>,document.getElementById('insertChart'))
如何解决函数内同步,函数间异步问题?加上async后函数变成异步函数,加await后函数内部可以实现同步,但是函数间不能实现同步(函数1中遇到await会直接跳到函数2,函数2执行完再执行函数1剩下的内容)。————方法一:setTimeout(有用,但是无法确定需要设置多少延迟时间)————
componentDidMount只能运行一次,如果要多次渲染图表chart,需要设计按钮,手动更新状态,或者再加一个componentDidUpdate(相当于上双重保险)。
子组件内可以只用props接受父组件传来的参数,没必要构造construction函数再使用自己的state。
Triggering nested component updates from render is not allowed 不允许从渲染触发嵌套组件更新?————
如何在map执行时在页面上渲染Loading组件?个人猜测,每循环map一次,Loading组件都会被自动解除挂载;另外,如何实现Loading的全屏覆盖加载?————

22.03.13周天

Navicat15激活:https://www.cnblogs.com/xiaomingxing/p/15228716.html
如何用sql横向拼接(并列合并)两个SELECT返回的结果表?————SELECT * FROM {xxx} AS a1,{xxx} AS a2。detail
报错:Every derived table must have its own alias(每一个派生出来的表都必须有一个自己的别名)————直接在新生产的表中加入 他的别命名就行(“as a”或者“a”),“a”为新表的别名。detail

22.03.14周一

antd样式没有显示问题(网页频闪问题)————1、直接在你的入口文件引入一个css文件。2、在这个文件中加一句 @import '~antd/dist/antd.css’。如果找不到这个文件,就把antd重新install一次(npm install antd --save) detail
antd中,如何让NavLink把组件链接到非紧邻NavLink正下方的位置(比如content框里)?或问,如何让NavLink自定义新组件的插入位置?————把NaviLink写在Header里,Route写在Content里,并保证字地址包含父地址前缀。
antd中,Header不固定,会和Content重叠?————
egg-sql中写入长sql语句并分行?————可以query('xxx'+'xxx'+'xxx')的格式,但容易导致SQL注入(客户端用sql语句攻击)。
控制Header组件相对于页面侧滑轮的固定与浮动————style={{position:'fixed'}}
Echarts用函数方式把纵坐标返回成百分数————formatter: function (a, b, c) { return (a.data*100).toFixed(1) + "%";
判断后端返回的数据为空[]则填充其为“404对象”的方法————可以通过看返回值result的长度是否为0来判断数据是否为空,即 if(result.data.length !== 0){xxx}

22.03.15周二

url传递多参数的方法————127.0.0.1:7001/api/eqa?key_exam_id=129&key_question_id=1633
egg接受多参数的方法(ctx.query)————注意find后只有一个括号,不要写成两个

    async index() {
        const { ctx, service } = this
        const key_exam_id = ctx.query.key_exam_id;
        const key_question_id = ctx.query.key_question_id;
        const eqas = await service.eqa.find(key_exam_id, key_question_id)
        ctx.body = eqas.user;
    }

node sql 语句传入参数写法————用 `xxx ${} xxx` detail
使用 react + antd 组件时,有时会报出 Each child in a list should have a unique “key“ prop. 这样的错误————每次多向数据库要一个唯一的id属性,并把这个id作为rowKey属性附加给Table:<Table columns={columns} dataSource={data} rowKey={data => data.id} />
设计时间轴————

22.03.16周三

设计锚点(页内导航)————https://ant.design/components/anchor-cn/#components-anchor-demo-basic
nodejs中sql语句过长换行解决方法————https://blog.csdn.net/u010489586/article/details/40378993
antd导航锚点悬浮效果(特定位置)——position:"fixed", zIndex:1
使用NodeJS在MySQL中运行SQL文件 ————
echarts成绩分区间展示(或在数据库中处理)————https://www.cnblogs.com/zoli/p/12120984.html
可以在navicat把复杂的SQL转化成视图,但在js中如何运用视图?————

22.03.19周六

nodejs写入复杂sql需要分行时————只需在首行开端和尾行末端加`,中间行不用做任何处理
React Ant Design中table里面使用onclick事件页面加载后自动执行,点击无效————1. 如果事件函数不需要参数,那么去除() 即可;2. 如果事件函数需要参数,那么使用箭头函数包括即可。https://www.cnblogs.com/xuhua123/p/13262046.html/79985877
bind在js中的作用——

22.03.20周天

javaScript连续解构赋值————const {keyWordElement_Eqa:{value:keyWord}} = this,其中,花括号里是解构出来的子变量,冒号的作用是把变量重命名。
获取input框的值————ref={c => this.keyWordElement_Eqa = c}
eggjs路由和组件命名法则————针对符合单词,路由地址可以加下划线,路由组件名字不能用下划线但是可以用小驼峰。router.get('/api/eqa_standard_answer', controller.eqaStandardAnswer.index);
如何判断变量等于特殊字符{}————转化成字符串再比较长度 if(JSON.stringify(result.data[0].args).length <= 4)

22.03.21周一

modal弹窗或者drawer抽屉必须使用函数组件,但是函数组件没有componentDidMount————在function函数组件里内嵌一个class类组件,然后再调用componentDidMount
componentDidMount只能渲染一次,之后不更新————因为每次点击子按钮后,都会渲染一个出<div id='insertEqaStandardAnswerList'></div>标签,而一旦出现相同的标签,ReactDOM就把组件优先插入第一个匹配成功的标签(空白页面并不代表内容没有渲染,而是代表内容渲染错了位置)。 https://www.cnblogs.com/gdsblog/p/7348375.html

22.03.22周二

今天的成果:
完成非参变选择题模块EqaStudentAnswerOption,因为要区别“跳过不做,手动交白卷”和“突然掉线,系统交白卷”两种情况下生成的答案,在sql数据清理工作上花了很大的劲;
删繁就简,整理代码,得到Feedback_03版本;
安装VMware和Ubuntu;
安装git。
明天的任务:
实现echarts柱状图特定位置上色;
git上传项目代码到云端;
完成填空题模块EqaStudentAnswerFill。

22.04.26周二

ES6中箭头函数加不加大括号的区别————

当你的箭头函数仅有一个参数的时候,可以省略掉括号。
当你的函数仅有一个表达式的时候,可以省略{}和return

fetch{xxx}
.then(
                response =>
                response.json();
)

fetch{xxx}
.then(
                response =>
                { response.json() };
)

不一样

图片.png
图片.png
图片.png
图片.png

以上说明console里的json()方法会对函数中的变量产生影响

fetch函数 url只有一个 '#' 是什么意思?

前端路由的核心,就在于改变视图的同时不会向后端发出请求——在第一个#后面出现的任何字符,都会被浏览器解读为位置标识符。这意味着,这些字符都不会被发送到服务器端。
单单改变#后的部分,浏览器只会滚动到相应位置,不会重新加载网页。

SequenceMatcher函数

作用:查找最大相同序列
算法的语法:https://blog.csdn.net/caimouse/article/details/48598539

def _init_中的self是什么

self, 就是指由class造出来的instance实例。
self是在为class编写instance method的时候,放在变量名第一个位子的占位词。
在具体编写instance method里,可以不使用self这个变量。
如果在method里面要改变instance的属性,可以用self.xxxx来指代这个属性进行修改。

22.04.25周二

python调用其他文件夹下文件中的函数以及类中的函数

my_test.py

def test():
    print('this is test func')
    
class my_test:
    def test():
        print('this is a class named A, its func is test() ')

main.py

# 导入函数
from similarity_project.my_test import test as func_test
# 导入类
from similarity_project.my_test import my_test as class_test
# 导入文件
from similarity_project import my_test as file_test

# 先导入函数,再调用函数
func_test()
# 先导入类,再接调用类中的函数
class_test.test()
# 直接调用文件中的函数
file_test.test()
# 直接调用文件中的类中的函数
file_test.my_test.test()

jwt token验证(JSON Web Tokens)

jwt官网 https://jwt.io/introduction/
视频 JWT认证原理、流程整合springboot实战应用 https://www.bilibili.com/video/BV1i54y1m7cP?p=3&spm_id_from=pageDriver

  • flask_jwt_extended

使用Postman做GET和POST测试

python循环引用解决
一般是文件重名引起的,在前面加一个“my_”即可
https://blog.csdn.net/weixin_44840774/article/details/111187887

flask 出现 TemplateNotFound的问题

修改关键文件夹的默认路径即可 app = Flask(name, template_folder='../templates',static_folder="../static")

22.04.27周三

如何用pip在其他文件中install包?

如何利用pip在指定版本的python环境下安装库
https://blog.csdn.net/qq_45669924/article/details/123849902

但是若已经在某处安装了,系统也检测得到
Requirement already satisfied: flask_jwt_extended in

python - try except

作用:捕获异常
https://baijiahao.baidu.com/s?id=1594434243519686727&wfr=spider&for=pc

python-@修饰符

用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰
http://www.py.cn/jishu/jichu/26907.html
Python @函数装饰器及用法
http://c.biancheng.net/view/2270.html
使用函数装饰器 A() 去装饰另一个函数 B(),其底层执行了如下 2 步操作:
将 B 作为参数传给 A() 函数;
将 A() 函数执行完成的返回值反馈回 B。

flask-登录机制-session

from flask import session, g

22.04.28周四

今日目标
拆解flask-app.py到多个子文件中(√)
找到合适的html做为login和home界面(×)
保证前端页面、后端接口都需要登录才能使用(√)
在feedback中新增“退出登录”按钮(×)

python导入各层级文件的方法(寻找根目录)

import sys
import os
# 得到当前根目录
o_path = os.getcwd() # 返回当前工作目录
sys.path.append(o_path) # 添加自己指定的搜索路径

flask static文件路径

将Python Flask应用程序拆分为多个文件

使用flask 蓝图(blueprint)技术
https://zhuanlan.zhihu.com/p/357444025
https://blog.51cto.com/u_12136715/2952920

url_for报错
werkzeug.routing.BuildError: Could not build url for endpoint 'xxxx'.
如果在 html中使用{{ url_for("login") }}就会出现上面那个错误。如果使用{{ url_for("web.login") }}就不会报错了

为什么有时候Blueprint创建的app不能读取静态文件static?
Flask Blueprint无法找到静态文件夹
https://www.thinbug.com/q/25795897
解决方法1:禁用应用程序静态文件夹app = Flask(name, static_folder=None)
解决方法2:添加网址前缀url_prefix

redirect的code是什么意思?

301和302 code码有什么区别?
301 redirect: 301 代表永久性转移(Permanently Moved)。
302 redirect: 302 代表暂时性转移(Temporarily Moved )。

为什么改变redirect(url_for)后响应不变?

tempCodeRunnerFile写入了缓存,应该即时删除

在 HTML 页面中使用 React

React中Url参数改变页面不刷新的解决办法

React路由跳转,路径改变页面未刷新问题
https://www.jb51.net/article/216189.htm

react如何默认调用index.js?
react如何修改项目入口文件index.js为jsx?

22.04.29周五

今日目标
在导航栏中点击HashRouter以改变url,但是页面不转跳(×)
登陆机制优化,fetch获取cookie(√)
在feedback中新增“注销登录”按钮(√)

HashRouter导致url改变,但是页面不转跳

最后决定直接用旧版本代码,可能是入口文件index.js和index.jsx的问题,也可能是react-router-dom的版本的问题

fetch如何进行前后端数据交互?

前端用fetch发送数据
https://blog.csdn.net/weixin_43880397/article/details/120171864

Python的flask接收前台的ajax的post数据和get数据的方法
post方式传值,那么在后台接收,使用request的form方法

request.form.get值为None?

json和字典的区别?

json是str,字典是dict
正确的JSON:属性名必须用双引号包裹

获取字典的key的方法
https://blog.csdn.net/weixin_28958727/article/details/111946516

data1 = {
    "username": "888",
    "password": "888",
}
print(type(data1))
print(data1['888'])
print(data1['888'])

session和g是什么?赋值时需要对请求头做怎样的限制?

session :session 是可以跨 request 使用的,session 的数据是经过加密后存储在 cookie 里的,用户每次 request 都会把这些 cookie 信息发回来,从而实现跨 request 使用。

g:g是面向单个 request 的,一个 request 处理完,g 里的东西就没了。

session和g是多线程的!

为什么用react-fetch不会生成session

向同一个url发送post请求时,若使用react-fetch进行此操作,则无法把值赋给服务端的g.user;若使用postman助手进行此操作,则可以把值赋给服务端的g.user?

又名:react fetch session丢失

为什么会出现postman接口调试正常而程序里fetch调用却出现session丢失的问题?
https://www.cnblogs.com/mwx-sky/archive/2022/04/13/16140404.html

react-fetch,g赋值失败
postman,g赋值成功

解决方法:

前端-react-fetch-添加credentials

fetch(url, {
            method: "POST",
            mode: 'cors', 
            credentials: 'include',
            headers: {
                'Accept' : '*/*',
                'Content-Length' : '<calculated when request is sent>',
                'Content-Type': 'application/json; charset=utf-8',
            },
            body: JSON.stringify(params)
        })

后端-flask-after_request-添加Access-Control-Allow-Credentials

@app_feedback.after_request
def after_request(resp):
    print('response.headers: ', '\n', resp.headers)
    resp.headers['Access-Control-Allow-Credentials'] = 'true'
    resp.headers['Access-Control-Allow-Methods'] = 'PUT,GET,POST,OPTIONS'
    print('response.headers: ', '\n', resp.headers)
    return resp

header里的cookies是怎么生成的?为了生成cookie,头文件有哪些内容是必须的?

fetch如何注销session状态?

头文件要和登记登录状态的一样:
改数据交互方法为POST,加入credentials: 'include',
这样,后端才能找到指定线程的session,并注销其登录状态。

fetch-post能拿到response吗?如果可以,如何得到response?

fetch post返回的response是什么?
https://www.it610.com/article/1295914305799135232.htm

fetch(myRequest)
  .then(function (response) { return response.json() })
  .then(function (data) { console.log(data) })

注意,对于response,前面有return,后面才能接受并使用

在函数内找不到this.setState

Cannot read properties of undefined (reading 'setState')
原因:this指向出错
解决办法:使用箭头函数
https://www.imooc.com/wenda/detail/485493

22.04.30周六

今日目标
在后端flask框架中,同时导入并运行两个react项目(×)
在前端react框架中,合并login和feedback模块为同一个项目(√)

flask中导入了两个react文件,但是只能正常展示一个,另外一个会失效

未解决!

react如何控制能不能控制url中#的位置?

react如何控制能不能控制url中#的位置?
react如何设置不带#的url?
react路由为什么没有覆盖原来的页面?

解决办法:改HashRouter为BrowserRouter!

22.05.01周日

今日目标
自动获取题目类型数据(×)——题型分类太多
手动获取题目类型数据(√)
eqns(latex)格式处理(√)
题干new_text文本分类模型(√)
答案new_eqns公式分类模型(×)——内容太多

Python如何获取当前目录、上一级目录?

import sys
import os
o_path = os.path.abspath(os.path.join(os.getcwd(), "../.."))
sys.path.append(o_path)  # 添加自己指定的搜索路径
print(o_path)
  
print('***获取当前目录***')
print(os.getcwd())
print(os.path.abspath(os.path.dirname(__file__)))

print('***获取上级目录***')
print(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
print(os.path.abspath(os.path.dirname(os.getcwd())))
print(os.path.abspath(os.path.join(os.getcwd(), "..")))

print('***获取上上级目录***')
print(os.path.abspath(os.path.join(os.getcwd(), "../..")))

python latex处理

在线latex编辑: https://www.latexlive.com/

strip函数
print(A.strip()) # strip只能删除两端的换行符

split函数
print(A.strip().split()) # split可以在特定字符处切断字符串

join方法连接字符串

str = "-";
seq = ("a", "b", "c"); # 字符串序列
print(str.join( seq )); # 连接字符串

题干text文本相似度比较:SequenceMatcher.ratio()方法

SequenceMatcher.ratio()原理:匹配的是字母的序列(组),而不是单个字母
https://www.pythonheidong.com/blog/article/1021812/edaa8583b520a4d22b9e/

可哈希性hashable是什么?
可哈希意思就是,通过hash函数,能产生唯一的value与key对应,如果key改变,value也应该改变,但是可变的数据结构,比如列表,它改变后,列表地址是不变的,可以理解为:不同的key指向了相同的value(假设value是地址?),这就发生了冲突,所以说列表是不可哈希的。
字典的底层实现就是哈希表的原理——在字典中,我们希望"key"是可哈希的,也就是不可变的,实现对value的一对一访问,具体地:字典中[key:value],对key进行hash运算,得到哈希值,根据哈希值来访问value。
https://zhuanlan.zhihu.com/p/397840507

python 的 lambda函数

冒号前是变量,冒号后是函数功能
lambda x, y: xy;函数输入是x和y,输出是它们的积xy
https://www.cnblogs.com/wind666/p/10703064.html

Python比较文本相似度的7种方法

https://blog.csdn.net/SpinMeRound/article/details/107465022?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.pc_relevant_default&utm_relevant_index=2

答案new_eqns公式分类模型

eqns_similarity
free_symbols——对于积分、微分运算,有一些符号是固定的,我们不能使用他们做为自定义变量

'list' object is not callable
原因:保留字作为变量被使用
(用visual studio code修改后,记得重启内核)

22.05.03周二

如何计算两个Graph的相似度?

MultiGraph库
add_edge:为图添加顶点连成的边
graph_edit_distance:动态规划之编辑距离

比较经典的度量方法包括:图同构,子图同构,最大共同子图,图编辑距离。

一文读懂Python复杂网络分析库networkx
https://baijiahao.baidu.com/s?id=1647867683487203382&wfr=spider&for=pc

python函数定义中,参数中的冒号和函数名后面的-> 是什么意思?

https://blog.csdn.net/automation666/article/details/123744446
例:def round(number: SupportsRound[Any]) -> int: ...
函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型。
函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型。
故,这两个符号和后续内容仅仅起到描述性作用,可以删除。

js中let,var,const的区别

var 声明的变量属于函数作用域,let 和 const 声明的变量属于块级作用域;
var 存在变量提升现象,而 let 和 const 没有此类现象;
var 变量可以重复声明,而在同一个块级作用域,let 变量不能重新声明,const 变量不能修改。

块级作用域:使用一对大括号包裹的一段代码,比如函数、判断语句、循环语句,甚至单独的一个{}都可以被看作是一个块级作用域。
变量提升:

为什么react-fetch 访问接口,会返回一个html?

在react 3000端口向flask 7001端口get数据,返回的session是7001的,并不是3000的,所以后端返回的html实际上是登录检测失败后redirect的html

CORS是干什么的?
CORS,全称Cross-Origin Resource Sharing ,是一种允许当前域(domain)的资源(比如html/js/web service)被其他域(domain)的脚本请求访问的机制,通常由于同域安全策略(the same-origin security policy)浏览器会禁止这种跨域请求。

'Access-Control-Allow-Origin' header in the response must not be the wildcard '' when the request's credentials mode is 'include'.
若前端采用include方法,后端'Access-Control-Allow-Origin'必须指定一个具体的域名,而不能是'
',
且,域名必须写成:
url_react_root = 'http://localhost:3000'
而不能写成:
url_react_root = 'localhost:3000'

22.05.04周三

如何在ReactDOM中遍历生成dom?

在react-map函数中使用return,必须保证返回值和return在同一行,否则不会返回值

异行——错误
同行——正确

如何在react渲染latex?

NPM安装MathJax?
https://segmentfault.com/q/1010000014796508

————npm mathjax
npm install react-mathjax
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree

NPM安装Katex?
教程:https://www.mianshigee.com/project/react-katex
github:https://github.com/talyssonoc/react-katex

yarn katex 1
yarn katex 2

解决npm安装失败问题的方法:
采用该网站上的npm资源:https://www.npmjs.com/package/@matejmazur/react-katex
npm install @matejmazur/react-mathjax
npm install @matejmazur/react-katex

动态加载mathjax不生效问题

官网:http://docs.mathjax.org/en/latest/advanced/typeset.html

解决动态ajax/pjax加载mathjax不生效问题
https://baijiahao.baidu.com/s?id=1626094770186209937&wfr=spider&for=pc

动态加载 mathjax_关于使用MathJax
https://blog.csdn.net/weixin_40001048/article/details/111109336

react中script只能写在主html中吗?可否写在组件中?

react cdn方式引入script

22.05.05周四

今日目标
优化Similarity Classify Result模板(√)
创建similarity的sentence和phrase训练集(△)
新建知识点目录 API、知识点Q&A API(√)

SQL格式化助手

SQL格式化
https://www.w3cschool.cn/tools/index?name=sql_formatter

22.05.06周五

毕设论文

22.05.07周六

编写multiple接口

22.05.08周日

如何处理原型是Array(0)的对象?

类似疑问: https://developers.weixin.qq.com/community/develop/doc/000ee8072f8df8b965892da955b000

源码
js不打印array_data[0]时
js打印array_data[0]时直接报错

解决办法:组件渲染前不处理数据,组件渲染后才处理数据!


解决办法
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容