SaaS公司Slack概况、产品功能、融资历史及主要竞品介绍
### Slack概况 Slack是一个基于云计算的即时通讯工具,由Tiny Speck LLC开发和运营。Slack可以使用通过Web浏览器、应用程序接口或电子邮件客户端进行访问。Slack的用户可以通过“频道”的方式进行沟通,这些频道可以是公共的,也可以是私人的。Slack被广泛应用于企业内部沟通和协作,并且支持与其他应用程序进行集成。
Slack产品功能
Slack的主要功能包括即时消息、文件共享、应用程序集成、搜索等。Slack的即时消息功能可以让用户实时沟通,并且可以通过@功能提醒指定的用户。Slack的文件共享功能可以让用户在平台上分享文件、图片等,还可以通过应用程序集成功能与其他应用程序进行集成,比如与GitHub、Google Drive等。此外,Slack还提供了强大的搜索功能,可以帮助用户更快找到相关的信息。
Slack融资历史
Slack的融资历史可以追溯到2013年,当时公司获得了A轮融资。2014年,公司获得了B轮融资,并在2015年获得了C轮融资。2016年,公司获得了D轮融资。2017年,公司获得了E轮融资。2018年,公司获得了F轮融资。到目前为止,公司已经获得了7轮融资,总计融资额达到了12亿美元。
Slack主要竞品
Slack的主要竞品包括Microsoft Teams、Hipchat、Flock、Flowdock等。Microsoft Teams是微软的即时通讯工具,Hipchat是Atlassian旗下的即时通讯工具,Flock是一款基于云计算的即时通讯工
console.log(e.target.value); this.setState({ value: e.target.value }); }
onSearch = () => {
console.log(this.state.value);
var value = this.state.value;
var data = [];
for (var i = 0; i < this.state.list.length; i++) {
if (this.state.list[i].name.indexOf(value) !== -1) {
data.push(this.state.list[i]);
}
}
this.setState({
data: data,
value: ''
});
}
onAdd = (num) => {
var data = this.state.data.slice();
data[num].count++;
this.setState({
data: data
});
}
onCreate = () => {
var data = this.state.data.slice();
data.push({name: '', count: 1});
this.setState({
data: data
});
}
onSave = () => {
var data = this.state.data.slice();
//TODO 保存数据
this.setState({
data: data
});
}
onDelete = (num) => {
var data = this.state.data.slice();
//TODO 删除数据
this.setState({
data: data
});
}
render() {
return (
<div>
<div className="container">
<div className="row">
<div className="col-6">
<div className="input-group">
<input type="text" className="form-control" placeholder="请输入搜索内容"
value={this.state.value} onChange={this.onChange}/>
<div className="input-group-append">
<button className="btn btn-outline-secondary" type="button"
onClick={this.onSearch}>搜索
</button>
</div>
</div>
</div>
<div className="col-6">
<button className="btn btn-primary" type="button" onClick={this.onCreate}>新建</button>
<button className="btn btn-success" type="button" onClick={this.onSave}>保存</button>
</div>
</div>
</div>
<div>
<table className="table table-bordered" style={{marginTop: '10px'}}>
<thead>
<tr>
<th>名称</th>
<th>数量</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{
this.state.data.map((item, index) => {
return (
<tr key={index}>
<td>
<input type="text" className="form-control"
value={item.name} onChange={this.onChange}/>
</td>
<td>
<input type="number" className="form-control"
value={item.count} onChange={this.onChange}/>
</td>
<td>
<button type="button" className="btn btn-success"
onClick={() => this.onAdd(index)}>+
</button>
<button type="button" className="btn btn-danger"
onClick={() => this.onDelete(index)}>-
</button>
</td>
</tr>
);
})
}
</tbody>
</table>
</div></p>