博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
D2.Reactjs 操作事件、状态改变、路由
阅读量:5247 次
发布时间:2019-06-14

本文共 1665 字,大约阅读时间需要 5 分钟。

下面内容代码使用ES6语法

一、组件的操作事件:

1、先要在组件类定义内定义操作事件的方法,如同event handler。若我需要监听在组件内的Button的点击事件onClick,首先定义监听方法,代码如下:

handleClick() {//TODO}

 

2、在contructor 函数,bind(this)。

constructor(props) {        super(props);        this.handleClick = this.handleClick.bind(this);    }

 

3、在render方法内,显式绑定事件

render() {        return 
; }

经过以上操作即会触发监听事件方法

 

二、组件状态state

  组件,我理解其实就是wpf的控件,那么state就是wpf中的依赖属性了,其功能如依赖属性其中的功能很类似,state的改变会改变组件的UI变化或者进行一些逻辑操作。

1、设置初始状态,即在contructor函数上设置组件初始state,

constructor(props) {        super(props);        this.state = {            liked: false,            opacity: 1        };    }

2、在事件中可以利用setState()设置新的状态,如在handleclick事件改变state,如下:

handleClick() {        this.setState({ liked: !this.state.liked });    }

state改变后促使组件重新执行render(),进而改变了UI。

 

三、路由

  reactjs可以使用单页面搭建整个网站或者APP,那么路由机制就十分需要,方便我们来实际一个页面来构建多个页面和页面的架构。React-Router是一个十分实用的官方插件,提供进行导航等操作。

1、安装插件

npm install -S react-router

2、使用

使用react-router 就像使用一般的插件,如下:

import React from 'react';import { render } from 'react-dom';import { Router, Route,IndexRoute, Link, browserHistory, hashHistory } from 'react-router';import App from './compoments/App';import ABout from './compoments/ABout';import Home from './compoments/Home';render((
), document.getElementById("container"));

其中App,Home,About 都是其他文件定义的组件。

  Router的history属性设置是设置Router将使用哪种URL,例如使用hashHistory,路由的切换由URL的hash变化决定,即URL的#部分发生变化,即上面访问about页面,URL路径将是localhost:8080/#/about;例如使用browserHistory,将会调用浏览器的URL,即访问about页面,URL路径将是localhost:8080/about。

  更多Router参数设置可以去官网查看。

转载于:https://www.cnblogs.com/NEIL-X/p/5988087.html

你可能感兴趣的文章
在Ubuntu下配置Apache多域名服务器
查看>>
多线程《三》进程与线程的区别
查看>>
linux sed命令
查看>>
LeetCode 160. Intersection of Two Linked Lists
查看>>
html标签的嵌套规则
查看>>
[Source] Machine Learning Gathering/Surveys
查看>>
HTML <select> 标签
查看>>
类加载机制
查看>>
tju 1782. The jackpot
查看>>
HTML5与CSS3基础(五)
查看>>
WinDbg调试C#技巧,解决CPU过高、死锁、内存爆满
查看>>
linux脚本中有source相关命令时的注意事项
查看>>
css样式表中的样式覆盖顺序
查看>>
湖南多校对抗赛(2015.03.28) H SG Value
查看>>
REST Web 服务(二)----JAX-RS 介绍
查看>>
hdu1255扫描线计算覆盖两次面积
查看>>
hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
查看>>
bzoj3224 splay板子
查看>>
程序存储问题
查看>>
Mac版OBS设置详解
查看>>