想把从服务器获取的字符串数据变成html请用dangerouslySetInnerHTML,模板如下:
render () {
const html = "内容a前面部分<br />内容a后面部分"
return(
<div dangerouslySetInnerHTML={{__html: html}}>
</div>
my.cmd
chcp 65001
ipconfig > C:\cmdInfo.txt
cd C://
PowerShell -Command "& {get-content cmdInfo.txt | set-content cmdInfoUtf8.txt -encoding utf8}"
index.tsx
import React from 'react';
const fs = require('fs');
const path = require('path');
const { spawn } = require('child_process');
const url = path.join(__dirname, 'components/Cmd/my.cmd');
const urlInfo = 'C:\\cmdInfoUtf8.txt';
class Index extends React.Component<any, any> {
constructor(props: any) {
super(props);
this.state = {
info: {
ipconfig:'',
txt: ''
* cmd方法是基于Node子进程spawn构建,主要是用于调用my.cmd文件,获得一个存储控制台信息的txt,再读取txt内容返回给State,详细看下面的my.cmd文件
cmd = () => {
const ls = spawn(url, []);
ls.stdout.on('data', (data: any) => {
console.log(data.toString());
this.setState({
info: {
...this.state.info,
ipconfig: this.state.info.ipconfig += data.toString()
});
});
ls.on('close', (code: number) => {
console.log(`子进程退出,使用退出码 ${code}`);
});
* readTxt方法是基于Node fs.readFile()构建,主要是用于获取读取本地txt文件,返回给UI
readTxt = () => {
fs.readFile(urlInfo, { encoding: 'utf8' }, (err: any, dirent: Buffer) => {
if (err) {
console.log(err);
this.setState({
info: {
...this.state.info,
txt: dirent.toString().replace(/\r\n/g,"<br />")
});
console.log(this.state.info.txt)
});
componentDidMount() {
this.cmd();
this.readTxt()
render() {
const { info } = this.state;
return (
{}
<div dangerouslySetInnerHTML={{__html:info.txt}}>
</div>
export default Index;
参考:https://segmentfault.com/q/1010000007228213
官方解释:https://reactjs.org/docs/dom-elements.html
想把从服务器获取的字符串数据变成html请用dangerouslySetInnerHTML,模板如下:render () { const html = "内容a前面部分<br />内容a后面部分" return( <div dangerouslySetInnerHTML={{__html: html}}> //里面不能放东西 </div> ) }官方解释:https://reactjs
事件驱动的库,用于使用执行子进程。
该库将与集成。 已启动的子进程可能会发出信号,并在终止时发出exit事件。 另外,进程I / O流(即STDIN,STDOUT,STDERR)作为公开。
快速入门示例
$ loop = React \ EventLoop \ Factory :: create ();
$ process = new React \ ChildProcess \ Process ( 'echo foo' );
$ process -> start ( $ loop );
$ process -> stdout -> on ( 'data' , function ( $ chunk ) {
echo $ chunk ;
$ process -> on ( 'exit' , function ( $ exitCode , $
和所有其它JavaScript模块不同的是,fs模块同时提供了异步和同步的方法。
回顾一下什么是异步方法。因为JavaScript的单线程模型,执行IO操作时,JavaScript代码无需等待,而是传入回调函数后,继续执行后续JavaScript代码。比如jQuery提供的getJSON()操作:
$.getJSON('http...
为什么使用jsx而不是js
创建虚拟DOM时,jsx可以直接写标签,而js只能用React.creatElement(),当有标签嵌套时,js将一直嵌套,非常复杂。jsx相当于js语法糖。
JSX语法
1. 虚拟DOM
创建虚拟DOM时,直接使用html标签而不是字符串,不能加.
require(“child_process”).exec执行报错
路径中有空格会导致执行报错,因为路径中有空格,exec会认为这是两个命令,解决方法
path = '\"'+path+ '\"' // 加上转义引号
exec(`${path}`,{encoding:'GBK'},(error, stdout, stderr) => {
console.log(error, stdout, stderr);
if (error) {
return;
} else
react+electron项目,在使用node中的fs时,报错fs.XXX is not a function electron
在引入fs时,要在require前加window. 就可以了
var fs = window.require('fs');
3.输入命令:①npm i -g create-react-app 回车
②create-react-app 回车
③create-react-app demo 回车(demo为项目名称,可任意取)
④cd demo 回车
⑤npm start 回车即安装成功。
如果报错,例如:
events.js:174
thr...
const { exec } = require('child_process');
const path = require('path')
const url = path.join(__dirname,'components/Cmd/my.bat')
console.log(url)
exec(url,(err:any,stdout:any,stderr:any)=>{
一把年纪了,现在还要来学react开发,没办法,为了温饱问题,学吧!活到老,学到老,这也是真理!
毕竟会Vue了,就算开发React,也不会那么难,看了一下官方文档,当天就开始开发项目了,泪奔!
然后就遇到问题了,然后就跳到坑里了也不知道怎么回事,哎,前端早点大一统吧,搞这么多框架干啥,信了你的邪!
说说遇到的这个坑吧,在react项目里面,由于遇到了问题,想再组件的js文件里面加个debugger语句调试一下,结果一保存,控制台满屏红色错误,如下:
一开始还以为
创建子进程的几种方式
1、child_process.exec(command[, options][, callback])
2、child_process.execFile(file[, args][, options][, callback])
3、child_process.fork(modulePath[, args][, options])
4、child_process.spawn(...
1、问题背景 利用readFile方法读取HTML文件,并输出文件内容2、实现源码E:\>cd E:\Program Files\nodejs
E:\Program Files\nodejs>node app.js
<Buffer 3c 21 64 6f 63 74 79 70 65 20 68 74 6d 6c 3e 0d 0a 3c 68 74 6d 6c 20 6c
61 6e 6
个人遇坑全面整理!npm install 报错没有匹配版本:npm ERR! code ETARGET npm ERR! notarget No matching version found for
71285
个人遇坑全面整理!npm install 报错没有匹配版本:npm ERR! code ETARGET npm ERR! notarget No matching version found for
指尖弦念:
Vue中子组件修改父组件的值(使用v-model优化,所有自定义组件可用v-model)
个人遇坑全面整理!npm install 报错没有匹配版本:npm ERR! code ETARGET npm ERR! notarget No matching version found for
个人遇坑全面整理!npm install 报错没有匹配版本:npm ERR! code ETARGET npm ERR! notarget No matching version found for
冉儿囡plus:
node 控制台中文乱码
zhuhouyu: