Official users
Nekomusume
如果我们能知道过去的一切,就能知道未来⏳......
粉丝数
12
关注数
1
阅读数
42,205
获赞数
9
动态
文章
帖子
提问
回答
收藏夹
Nekomusume发表了文章 2025-03-21 18:40:22

如何创建你的第一个React.js+Vite项目?

最近弦圈APP第一个正式版上线了,在下载弦圈APP这个页面中,GitHub Page的下载页面就是直接用React.js+Vite写的:https://ricciflows.github.io/xianquan-app-download/。那么,对于新人小白而言,如何创建第一个React.js+Vite项目,并写出这样一个简单的页面呢?本文将手把手教你如何实现。首先,你需要安装并配置好node.js环境,具体见Node.js安装与更新教程 - Windows版,并确保node版本是18+或者20+。接着win+R并输入cmd打开控制台(如果你想要选择项目的位置,如D:\Reactjs,则分别输入D:和cd Reactjs)然后输入命令npm create vite@latest如果输出以下结果,则输入y然后按enter键接着输入项目名称,如vite-test按方向键↓,选择React,然后enter接着,根据自己的需要选择。这里我们选择第一个然后根据提示,分别输入三条命令。第一个命令是指进入项目文件vite-test,第二个命令则是安装所有npm依赖,第三个命令则是运行测试模式。注:输入完npm install的时候等待安装依赖。安装完后,运行npm run dev然后打开浏览器,在地址栏中输入网址 http://localhost:5173/ 这样你的第一个React+vite项目就创建成功啦!那么如何开始编写自己的页面呢?首先,你需要有VSCode编辑器(安装步骤见VSCode安装步骤 - Windows版)。接着打开VSCode,点击Open Folder找到你的项目文件夹,点击选择文件夹勾选Trust the authors...,然后点击Yes接着在左侧栏找到App.tsx,然后你就可以开始编写你的第一个页面啦!你可以像下图那样修改,然后按Ctrl+S保存接着就能看到你的杰作!本文关于创建第一个React+Vite项目的教程就到此为止😇。关于更多React相关的内容,可以访问React的官方文档进行学习。

Nekomusume发表了文章 2025-03-21 17:44:55

Node.js安装与更新教程 - Windows版

Node.js环境是前端开发的必备环境,无论哪一个前端框架都需要用到node.js,本文将会教你如何安装配置node.js环境。如果你已经安装过node.js,但是想更新,那你也只需要按照安装的步骤直接覆盖原目录即可。首先,打开node.js的官网https://nodejs.org/zh-cn,然后下载node.js的Windows安装包。注:无特别需求,直接安装LTS(long term support)版就可以了。如果觉得在官网下载速度太慢,可以选择镜像网站下载:https://mirrors.aliyun.com/nodejs-release/v22.14.0/?spm=a2c6h.25603864.0.0.4b507621PbOVxm。然后根据自己电脑的配置选择安装包,下载完后直接打开,选Next勾同意协议,然后选Next设置你的安装路径,然后选Next接下来,这里不用管直接选Next继续选Next,注:这里说的是某些npm库安装时需要从C/C++中编译出来,如果你想要能安装这些库,就勾选此项。现在直接选Install,开始安装等待安装完成(如果这时候弹出请求管理员权限,点是)安装完成后,点Finish结束安装。这时候node.js的环境变量已经自动加入到你的电脑中,不需要你去额外添加。按win+R,然后输入cmd打开控制台接着输入命令node -v如果输出跟下图一致,证明node.js已成功安装。最后你需要额外修改两个node.js的参数,并配置相应的环境变量。在控制台中,分别输入以下三个命令(注意路径为你的node.js安装路径):npm config set prefix "D:\Program Files\nodejs\node_global" npm config set cache "D:\Program Files\nodejs\node_cache" npm config set registry https://registry.npmmirror.com/第一个命令修改的是npm全局安装的路径,即npm install -g xxx的安装位置。第二个命令修改的是npm的cache文件,需要定期清理。第三个命令将npm下载源修改为国内源,用于提高npm install xxx的下载速度。修改完后,输入命令npm config list如果输出以下内容,则证明修改成功:最后添加一条环境变量,先打开Windows设置,然后点击高级系统设置点击环境变量在系统变量中,找到Path并选中,然后点击编辑接着点击新建,然后输入D:\Program Files\nodejs\node_global,然后点击确定即可。到此,node.js的安装步骤已圆满完成。

Nekomusume发表了文章 2025-03-21 12:39:24

Flutter、Tauri、React Native、Android原生的四次开发经历,为何最后我选择了React Native?

Flutter、Tauri、React Native都是目前移动端流行的跨平台开发框架,并且他们还能胜任全平台开发。React Native是最早开源的跨平台框架,而Flutter紧跟其后,并且Flutter最近几年超越React Native成为当前世界上最流行的跨平台框架。Tauri则是最近几年诞生的新跨平台框架,跟其他框架显著不同的一点是,它允许你使用任何前端框架,即你能够自由使用整个Web生态进行跨平台开发。Flutter、Tauri、React Native、Android原生我都尝试过,接下来我说一下我分别使用他们的开发经历。首先,我第一个使用的跨平台框架是Tauri,当时Tauri V2.0已经发布,我看它能够使用Nuxt.js或者Next.js进行开发,觉得蛮不错的。毕竟我有两个网站,一个是Nuxt写的,另一个是Next写的,这样我就只需要在原有代码基础上修改一下就行了。于是很快我就栽跟头了,首先是Nuxt的桌面端应用,我在dev模式下,没有发现任何问题,$fetch请求也能正常发送。结果build以后,发现所有的请求都废了,全是404,将url改为完整url,结果就是跨域问题。之后我才明白,Tauri其实是一个Rust GUI框架,HTML、CSS、JavaScript都只是用来渲染画面罢了,想要发送HTTP请求还得通过Rust。于是,在Tauri官方文档中,我找到了HTTP请求的插件,最后才解决了这个问题。这还只是个小问题,最后真正劝退我的还是写移动端的时候。之后我找到了一个Web端的手机端UI库,于是打算从零开始写一个手机端APP。刚开始一切都没问题,开发起来就跟Web端我适配手机端时一样。直到写登录功能时,我才遇到一个新问题。在Web端我们可以直接使用cookie来实现登录功能,而在Tauri似乎并没有cookie这个概念,我得使用OAuth2实现登录功能,并将access token与refresh token存放到安全的地方。而这就是一切问题的起因,我查看了Tauri官方提供的插件,最后找到了两个能用来存储数据的插件——Store和Stronghold,而Stronghold就是专门用于存储敏感数据的。于是,我直接根据官网的步骤开始使用,结果最后运行的时候rust build报错了,怎么样都修复不了。谷歌上也找不到什么有用的信息,最后我不得已去GitHub提了一下issue,没人答复。于是我只能放弃Tauri,毕竟这么简单的功能都解决不了,谁知道后面有没有更难的。后来我也知道这是为什么了,就是Stronghold的一个依赖过时了,但没人替换掉,总之这个问题短期内是无法解决的。具体见Stronghold doesn't work在放弃Tauri后,接着,我使用了React Native来开发。React Native虽然使用的语言是React的,但是开发体验完全不一样。并且我刚开始使用了错误的UI库Tamagui上手(具体见React Native UI库介绍与对比),加上创建项目使用的template不同,总之刚开始用了不多久,我就放弃React Native了,转而尝试安卓原生和Flutter。说到安卓原生,我的开发时间很短,因为一开始用了没多久就把我劝退了😅。首先是很奇葩的需要将所有的string都写进一个xml文件里,这跟Web开发这么久所形成的习惯格格不入。接着就是布局组件这些,都得在xml文件里写,而函数调用那些就得在kt文件里写。接着就是实现一个ListView想不到也这么麻烦,最后根据网上找的资料,我才勉勉强强实现一个。最后把我劝退的,是在安卓原生发送HTTP请求,我对Java或者Kotlin本身就不熟悉,结果我发现想要发送一个简单的请求居然如此麻烦,对比React Native直接一个fetch搞定,安卓原生哪怕下了OkHttp也还是那么复杂。总之,最后我觉得按这个情况下去,开发完一个APP得猴年马月。于是,这时我第一次使用Flutter进行开发,虽然Flutter用的是dart语言,对熟悉JavaScript的Web开发者来说有些反人类设计,但其写法跟Java相似,并且跟安卓原生相比,已经简化很多了,接着还有一点就是它的官方文档十分齐全,还附有视频。刚开始用Flutter开发也没啥大问题,基本上都克服了。Flutter的状态管理相比于React Native能够使用Zustand还是复杂很多,不过发送HTTP请求还算简单跟fetch有得一比,比安卓原生简单不知道多少倍。而Authentication的实现比React native navigation的实现过程复杂一些,但最后也是顺利实现。目前看来,我应该可以使用Flutter一直开发下去。最后是什么劝退我使用Flutter呢?答案很简单,因为我无法使用Android emulator进行测试。前面我使用flutter都是直接用浏览器来测试的,也就是说我测试的是Web端,而Web端想要实现跨域很麻烦,反正我一直实现不了。毕竟我要开发的只是手机端,于是我直接打开安卓版,结果要么是报错,要么好不容易报错没了,结果Android emulator崩了。最后我花了不少时间,都解决不了Android emulator崩溃的问题,GitHub上也有不少人遇到这个问题,于是我只好放弃Flutter。最后我重新使用React Native进行开发,并且弃用Tamagui,改用React native paper以后,基本上也没遇到什么大问题。一路顺利推进下去,而偶尔也会遇到一些问题,需要花很多时间来解决。就这样前前后后花了三个月,弦圈APP终于在3月1号开发完成。

Nekomusume发表了文章 2025-03-20 22:44:38

中国当前的教育最缺少什么?

在我看来,目前国内教育最大的问题之一,就是不告诉学生这个社会残酷的真相,只会不断给学生灌输好好读书,以后勤奋工作才能出人头地、赚钱的错误观念。这导致大学里一个非常奇怪的现象,很多人明明没有赚钱的本事,却拿着父母赚的辛苦钱无所事事,在学校享受人生,俨然一副天堂的样子。因为到了大学,好好读书这个意念也随着高考结束而逐渐淡化,没有人再管你的学习,你只需要期末考试及格,干啥都可以,甚至不及格还能补考。然而殊不知这样的学生出来以后,大概率很快会被社会毒打。被当成螺丝钉是小事,最怕的是连当螺丝钉的资格都没有。目前国内教育的目的就是为了产生好的螺丝钉。但是讽刺的是,学校即便连螺丝钉都不能好好培养出来。因为学校教育与社会现实严重脱轨,以计算机编程类的课程为例,很多课里面的内容还停留在十几年前,完全没有与时俱进,也没考虑生产实际。这也意味着,在学校哪怕你认真上好每一节,学好所有的知识,也并不能在社会的竞争中脱颖而出,你必须自学加量,疯狂内卷,在自我内耗中度过。学校只是个没有感情的流水线工厂,只会机械性的给你灌输教材的内容,不会教你如何赚钱、如何社交、如何对待感情等等更加重要的问题,最后导致很多人遇到感情问题时不知道如何处理,从而诞生了很多舔狗;或者说出来社会以后遭遇社会的毒打,才知道这个社会弱肉强食不讲道理。很多社会上的黑暗面都被学校所掩盖了,学校里是小型社会没错,但是我更倾向于认为这是个小型温室。因此,但凡有理想抱负的同学,都从来不会依靠学校来成长,对他们来说学校就只是发毕业证书的工具。然而有些时候越有理想,反而越痛苦,你会发现很多学校明明应该提供给学生的资源,偏偏很难获取。就以做学术为例,如果你的学校并不是众所周知的那些名校,那么你基本上只能完全靠自己,什么看文献、写论文、投稿、升学,你每想要往前跨一步,都要比别人付出成倍的努力,并且结果还不一定满意。如今国内教育的一个重要问题,仍然是教育资源的垄断问题。有人问学生该怎么做?我认为作为学生不应该被学校的教育和观念所约束,做自己想做的事情就是了。比如说你想赚钱,那你就学点投资理财,尝试自己先赚点小钱,不贪多。如果你想做学术,物质需求比较低,那么你就不要按部就班地跟着学校进度学教材的内容,你应该早点联系导师,开始看更深入的教材,看文献。做学术得早点开始培养学术能力,没有导师就联系学校里的老师看谁愿意带你。其实考试啥的对学术和赚钱一点帮助都没有,所以你有资本不跟大家一起卷,那及格就行了。而关于提高社交,最有效的方法就是得多社交,多与不同的人相处,不要封闭自我故作清高。很多同学以浪费时间要学习为理由,而逃避社交,我觉得这账迟早得还的,有人就有江湖,社交很难避免得了。同时社交可以扩大自己的圈子,做任何事情圈子很重要,无论你是想赚钱还是想做学术,都得在圈子里面。

Nekomusume发表了文章 2025-01-16 23:29:56

未来所有人都能被一种名为‘复活术’的仪式复活,而我被复活进了一座神秘的监狱,在这里每个人无时无刻都要接受无比残忍的折磨...

在未来的地球上,诞生了一种名为“复活术”的神奇仪式,所有人都能被该仪式复活,且不需要付出任何代价。你只需要在任意地方画出一些玄奥的几何图案,然后随意念出任意条件,如果有人满足你所说的条件,那么这个人就会马上被复活。如果满足条件的不止一个人,那么所有满足条件的人都会被同时复活。于是,死去的科学家、伟人们都被人们争相复活,人类的科技水平在短短数年内就得到了飞速发展。同时地球的人口也开始了指数型暴涨,到了2080年,全世界人口就已经到达400亿!因为人口的暴涨资源开始紧缺,加上死亡已经不再忌讳,很多人开始胡作为非,有些无聊的人甚至把烧杀抢夺、花样自杀当作自己的日常生活。于是各国政府纷纷出台《复活法》,限制复活术的使用,每个人禁止生育后代,以及禁止自杀,所有自杀者复活后会被直接拘禁。就这样,社会秩序的混乱才逐渐消停了一些。虽然人类距离抵达一级文明的水平还有很长一段时间,但这样史无前例的科技发展速度还是让大家沉浸在了征服宇宙的未来无尽幻想之中,却殊不知一场同样史无前例的浩大危机正在逼近......不知道多少年过去,在仙界死去的陈默也被复活术复活后,就发现自己已经置身在这座名为“通天塔”的监狱之中。“这里是地球?”,看着这昏暗但又充满科技感的牢房,重新感受到曾经地球那熟悉无比的气息,陈默心里发懵。他心里清晰记得,自己上一世从地球穿越到修真界,先是突破至化神期,然后又一路高歌猛进突破到大乘期,接着渡劫飞升至真仙界,不知经过多少年的修行,最后到达传说中的仙尊之境。于是他意气风发,想要更进一步突破到神的境界时,却因抵挡不住来自神界的七彩神雷,最后身死道逍。临终前,他不得不使用秘法转世重修,结果居然重生回了这地方?“哈哈😄,活了活了”,这时一道声音传了过来。只见一相貌可爱,身材略显消瘦的少年正端坐在一旁,“哥们醒了!是我复活的你。”“你叫陈旺荣吧。”,陈默淡淡看了这少年一眼,同时内视己身,发现自己已修为尽失,只能从头开始重新修炼了。“啊这......这不可能,怎么反客为主了?”,少年露出一副不可思议的神色,原本他是想问陈默的身份信息,结果却发现自己早被对方所看透。于是赶忙问道:“你是怎么知道我的名字的?”陈默嘴角微扬,他并没有回答陈旺荣的这个问题,而是问道:“这里是地球哪个地方?现在是何年何月?”“其实我也不知道这是啥地方,只听说这监狱叫做“通天塔”,在很久很久以前就已经存在了。至于何年何月,我只知道我被关进来时是6100年3月3日。”,陈旺荣如实回答。想不到地球已经过去那么多年了,陈默想着,不过地球的时间流速跟仙界不一样,在仙界仅仅是突破一个小境界都可能需要上千年时间。“那你之前说是你复活的我?这是怎么回事?”,陈默继续道。陈旺荣刚想说话,忽然好像想起什么,满脸惊恐的叫道:“完了!”。接着,他被从墙壁四周伸出的机械手臂抓住,然后通电。只听到滋滋的电流声响起,然后陈旺荣身上很快就冒起了烟。有些反常的是,刚刚还惊恐无比的陈旺荣此事像是没事人一样,他面无表情没有挣扎,也没有像预料中的那样发出惨叫,仿佛他真的没有感受到任何痛苦。为了尽可能多的复活过去死去的人,各国开始使用量子计算机来做穷举法复活过去的人类

Nekomusume发表了文章 2025-01-03 11:50:49

如何在学习数学的过程中建立一个直观的认识?

知乎提问:请教大家一个问题:我在理解数学公式的时候,全部都是从几何意义入手,而且这些几何意义能够反推出公式,(比如y=kx+b和一条直线 能够建立直觉上的认知)。但是遇到一些比较复杂的公式,没有办法由几何意义建立直觉上的认知的时候(比如说正态分布的函数,没有办法知道正态分布的函数每部分对几何的影响),就发现自己没有办法理解。想请问up,对于后者应该怎么去理解?有没有什么其他的思维去理解记忆,建立直观上的认识。我的回答:我的思维方式与你完全相反,我是不喜欢直观的东西,相反我喜欢抽象的东西,越抽象越好。我理解数学也从来不是从几何直观出发,而是直接从抽象角度出发,哪怕一样东西抽象到完全没有任何直观可言,也不影响我理解它。我个人觉得题主形成这种过度依赖几何直观理解数学的思维,可能跟没有好好学习代数有关。相较于几何,代数本身更加抽象,强调推理和计算。你需要多学习代数相关的数学,培养自己的代数思维,这样或许有助于你理解一些抽象的数学对象。有些数学概念本身就是通过直观就能理解的,或者说有些概念本身就是抽象的,因此需要针对不同的概念用不同的思维去理解。以上我说的更多的是方法论,并没有非常具体做法,主要我语言表达能力也不强,因此最简单粗暴的方法就是多看不同领域的数学教材,让自己的数学思维不至于太多于单一。

Nekomusume发表了文章 2025-01-03 11:49:03

奥数热对中国数学是利还是弊?

知乎提问:奥数热对中国数学是利还是弊?我的回答:这个问题对于以不同目的学数学的人,自然会有不同的答案。对于那些以升学为目的、普通家庭的学生,或许是多一条改变命运的路,不至于只有中考、高考一条路。不过由于奥数热,这条路的内卷程度甚至比高考还厉害,因为名额很少,但却这么多人在争。而普通家庭的学生没有什么教育资源的优势,加入这条道路不仅要花费大量时间精力以及金钱,还因为无法兼顾正常课导致无法中考或高考。因此整体上而言对于以升学为目的、普通家庭的学生,我认为是弊大于利,绝大多数学生只会成为“炮灰”。对于那些不以升学为目的,热爱数学的普通家庭学生,这也不见得是好事。因为热爱数学的学生,不一定对奥数感兴趣,加之奥数本身所倡导的竞技性,说真的压根不能算是正常的数学,只能说是把体育竞技带进了数学(奥数全称奥林匹克数学竞赛),只会让真正热爱数学的人心生厌恶,奥数热所带来的社会风气,哪怕是以升学为目的、热爱数学的普通家庭学生,奥数热也只会让真正想学数学的人无暇关注数学本身,从而分神在无意义的数学竞技中。数学研究不是竞技,那是探索未知,两者完全不在一个频道上。因此,整体上说奥数热对热爱数学的普通家庭学生,我认为是弊大于利。最后我思来想去,奥数热的既得利益者,应该是包括以升学为目的、数学应试能力极强、有一定教育资源的学生。为什么不说数学天赋很强,我认为没有什么必然关系,你不能说陶哲轩拿过奥数金牌,就说反过来说奥数厉害的数学天赋都很高,只能说数学竞技、应试能力很强,这是竞技天赋,严格来说不算数学天赋。以培养奥数学生为目的赚钱的奥数教育机构,这已经是一条成熟的产业链了吧,利益强相关。所以之前Yau搞自己的竞赛,搞个Yau版升学通道,也被当面质问说砸了别人饭碗。热爱数学且应试能力极强、有教育资源的学生,通过奥数的方式完成升学目的,从而获得更好的学术资源。这类学生虽然也是以升学为目的,但是更好的升学能让他获得更优质的资源,在这个制度下算是最优解。这里不包括家庭条件优越的学生,不仅仅是家庭条件好,是优越,这种学生应该也不需要奥数来帮助自己升学从而获得好的学术资源了。不需要考虑升学、热爱数学、家庭条件优越的学生,可以说这是最理想的状态了,能够以最纯粹的方式学数学,外界如何如何于他而言没有任何关系,他只需要关心数学本身即可。

Nekomusume发表了文章 2025-01-03 01:26:50

弦圈1月2日更新日志

今天收到用户的反馈 无法从消息中心的回复与评论中进入帖子后,我马上对消息中心回复与评论部分功能,进行了优化升级。目前无论是回复和评论,都会带上原文链接。这里还有一个坑我暂时没想到解决办法,就是打开原文链接,页面会直接滑到相应的回复或者评论,就跟b站一样。然后除了原文链接,我还加上了快捷回复、快捷点赞、快捷踩,方便用户看到回复或评论后马上进行操作。这里我没有采用知乎的那种评论对话框模式。接着我将加载更多信息的方式,从点击按钮“更多信息”,改成了分页模式。因为如此大量的评论以及回复,就是一个信息无底洞,怎么加载都加载不完,而且用户也很难控制自己看哪些评论或回复。因此在这种情况下,我还是觉得分页的体验会更好,b站使用的是无限滚动,这在信息比较少的时候确实不错,但却非常不利于信息的管理,同时也会浪费那些需要经常查看信息并回复的用户的时间(可能是b站想强行增加用户停留时间吧😅)。话说私信功能其实目前仍不支持,主要是我担心socket.io所可能导致的性能问题。或者放弃实时性,改用轮询或者长连接,因为一般而言除了聊天软件,私信功能似乎不需要什么实时性🙃。之后弦圈活跃度高的时候再慢慢考虑吧。