美文网首页
table案例-3.0实现点击nav切换table栏

table案例-3.0实现点击nav切换table栏

作者: 事故如书我偏爱你这一句 | 来源:发表于2017-11-25 09:40 被阅读0次
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <link rel="stylesheet" type="text/css" href="css/tab.css">
        <script src="../react.js"></script>
        <script src="../react-dom.js"></script>
        <script src="../browser.min.js"></script>
    </head>
    <body>
        <div id="app"></div>
    
        <!-- 别忘了设置type -->
        <script type="text/babel">
    
        // 创建一个AppTab组件, 注意react中元素的都是DOM属性, 其中class应该写成className
        var AppTab = React.createClass({
    
            // 该配置项与vue中的data一样, 需要定义成函数return一个对象的形式
            // 对象里面去编写组件内所需的数据
            getInitialState() {
                return {
                    menuList: ['国际大牌', '国妆名牌', '男士精品', '女士精品'],
                    mainList: ['imgs/guojidapai.jpg', 'imgs/guozhuangmingpin.jpg', 
                    'imgs/qingjieyongpin.jpg', 'imgs/nanshijingpin.jpg'],
                    focusIndex: 3
                };
            },
    
            // tab栏导航点击处理函数
            clickHandler(index) {
                console.log(index)
                // this.state.focusIndex = index; // 注意, 想要react自动更新视图, 不能手动修改值
                this.setState({
                    focusIndex: index             // 必须调用react提供的方法修改状态
                });
            },
    
            render() {
                return (
                    <div className="wrapper" id="wrapper">
                        <ul className="tab" id="tab-menu">
                            {
                                /* 定义的组件内部状态, 通过组件实例的state属性来访问 */ 
                                this.state.menuList.map((v, i) => {
                                    return (
                                        /* 这里绑定的事件处理函数, 从组件实例this身上取 */ 
                                        <li onClick={ this.clickHandler.bind(null, i) } className={ this.state.focusIndex == i? 'tab-item active': 'tab-item' } key={ v }>
                                            <span>◆</span>{ v }
                                        </li>
                                    )
                                })
                            }
                        </ul>
                        <div className="products" id="tab-main">
                            {
                                this.state.mainList.map((v, i) => {
                                    return (
                                        <div className={ this.state.focusIndex == i? "main selected": "main" } key={ v }>
                                            <a href="###"><img src={ v } alt=""/></a>
                                        </div>
                                    )
                                })
                            }
                        </div>
                    </div>
                );
            }
        });
    
        // 渲染AppTab组件
        ReactDOM.render(<div><AppTab/><AppTab/></div>, document.querySelector('#app'));
        </script>
    </body>
    </html>
    
    

    相关文章

      网友评论

          本文标题:table案例-3.0实现点击nav切换table栏

          本文链接:https://www.haomeiwen.com/subject/hnwqbxtx.html