频道栏目
首页 > 资讯 > 其他综合 > 正文

用react+webpack+redux+MongoDB+express写博客问题集锦

17-06-17        来源:[db:作者]  
收藏   我要投稿

用react+webpack+redux+MongoDB+express写博客问题集锦。

1、server.js中设置views路径和模板
前提是先安装ejs插件

var ejs = require('ejs');
app.set('views', './view');     //设定页面目录
app.set('view engine', 'ejs');      //设置ejs引擎

express中默认ejs作为view引擎,若要改为HTML使用一下方法

app.engine('.html', ejs.__express);  //将默认ejs引擎改为HTML引擎
app.set('view engine', 'html');

2、子路由和父路由不在同一个页面时子路由的安放问题
需要子路由内容显示在哪个标签内时就可以把子路由放在那里,这好像是react-router-dom 4和之前的版本不同的地方,之前的版本是子路由嵌套在父路由里面,新版本可以将子路由剥离出来,这是本人当时在做的时候很令我头疼的地方(哈哈,本人比较笨,都别笑话哈),举个例子吧
index.js

ReactDOM.render(
    
        
               //父路由
        
    ,
    document.getElementById("main")
);

需要将子路由内容显示在别的板块里
app.js


                                 //子路由1
                                   //子路由2
                        

3、render中存在if语句怎么办
可以用三目运算符,还有冒号前后如果有多个标签需要用一个标签将这些标签包起来,另外render里面的内容也必须用一个标签将它们包起来,举例说明

{
                        this.state.nickname==="" ? 您还未登录,请
登录 : 你好,{this.state.nickname}   退出 }

上述代码中“你好”和“退出”所在的span标签外若没有另一个外围span标签, 那里将会报错。

4、render中不能使用this.setState
因为每执行一次this.setState,render中都会重新渲染,渲染过程中又会重新执行this.setState,这样会陷入死循环。

5、路由向组件传值
同样举例说明:

组件Publish需要接收参数id,在组件Publish中可以这样获取this.props.match.params.id,当时无意中打印this.props才知道要这样获取。。。

6、页面跳转问题
(1)回退:this.props.history.goBack();
(2)跳转到指定页面:this.props.history.push(path);
有些方法不知道怎么用可以将其打印出来:console.log(this);

7、render中使用map方法罗列数组
(1)没有return的情况

{
    arr.map(val => ({val}))
}

(2)有return的情况

{
    arr.map(val => {
        return {val}
    })
}

8、render渲染的集中情况
(1)首次加载
(2)使用setState
(3)接收到新的props

9、this.props的值
这些值有从父组件传递过来的,有从reducer传递过来的,任何组件使用connect(mapStateToProps,mapDispatchToProps)()后都会接收到来自reducer的state值。举例说明:
A页面被触发去改变state后进入B页面,B页面有两个组件,B页面上没有触发改变state,则B页面和这两个组件都会接收来自A页面的state,若A页面没有,则A页面的state来自A页面的上一个页面,以此类推。
如果不清楚每个页面获取的state可以在mapStateToProps中将其打印出来。

相关TAG标签
上一篇:线程安全与可重入函数
下一篇:如何让Outlook随系统启动+关闭变为后台运行
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站