No caso deste código:
const { usuario, senha } = this.state;
O que você está fazendo é uma desestruturação. Ou seja, você está criando uma variável senha e usuario com o conteúdo da variável senha e usuario do seu state.
Isso facilita o seu trabalho, já que você não vai mais precisar fazer this.state.senha para acessar a senha.
Quanto ao bind, como você não postou o código, a utilidade seria para passar a função para outro componente.
Por exemplo, vamos supor que você tenha uma função setNome que altere o state nome de sua página. Se você quiser passar a função para outro componente, vai ter que fazer o bind, de outra forma, não vai funcionar.
Aqui tem um exemplo onde os componente "Produtos" e "Categorias" recebem via props uma função chamada "alterarTab"
export default class catalogo extends Component {
state = {
activeTab: 0,
initialPage: 0
};
alterarTab = valor => {
this.setState({ activeTab: valor });
};
render() {
return (
<Container>
<Tabs initialPage={this.state.initialPage} page={this.state.activeTab}>
<Tab heading="Produtos">
<Produtos navigation={this.props.navigation} alterarTab={this.alterarTab.bind(this)}/>
</Tab>
<Tab heading="Categorias">
<Categorias navigation={this.props.navigation} alterarTab={this.alterarTab.bind(this)}/>
</Tab>
</Tabs>
</Container>
);
}
}