• React 中 调用 Asp.net WebApi


    1、安装node 相关包

    npm install --save react react-dom superagent

    2、安装gulp相关包

    npm install --save gulp-browserify gulp reactify gulp-connect

    3、编写gulpfile.js 构建React文件

    var gulp = require('gulp'),
        browserify = require('gulp-browserify'),
        reactify = require('reactify'),
        connect = require('gulp-connect');
    
    
    gulp.task('build', function() {
        gulp.src('index.js').
        pipe(browserify({
                transform: ['reactify']
            }))
            .pipe(gulp.dest('build.js'))
    })
    
    gulp.task('connect', function() {
        connect.server({
            port: 3000,
            livereload: true
        })
    })
    
    gulp.task('html', function() {
        gulp.src('*.html')
            .pipe(connect.reload())
    })
    gulp.task('js',['build'], function() {
    
        gulp.src('*.js')
            .pipe(connect.reload())
    })
    
    gulp.task('watch', function() {
        gulp.watch('*.html', ['html'])
        gulp.watch('*.js', ['js'])
    })
    
    gulp.task('default', ['build', 'watch', 'connect'])

    4、编写request请求

      1、新增常量文件 constants.js 用来存放 request 请求中 Basic 认证的用户名  密码

      

    module.exports={
        uname:'123',
        pwd:'123'
    }

       2、新增调用 API 文件  api.js

    var request = require('superagent');
    var constants = require('./constants.js');
    
    
    module.exports = {
        Get: function(callback) {
            request
                .get('http://localhost:53691/api/value')
                .auth(constants.uname, constants.pwd)
                .end(function(err, res) {
                    if(err){
                        alert(err);
                    }
                    callback(res.body);
                });
        }
    }

    5、新增index.js 

    var React=require('react'),
        ReactDOM=require('react-dom'),
        API=require('./Api.js');
    
    
    
    var ItemList=React.createClass({
        getInitialState:function(){
            return {
                Users:[]
            }
        },
        componentWillMount:function(){
            var users=API.Get(function(users){
                this.setState({
                    Users: users
                })
            }.bind(this));
            
        },
        render:function(){
            var users=this.state.Users;
             if(Array.isArray(users)==false)throw new Error('users is not array')
            var lists=users.map(function(item){
                return <li key={item.ID}>{item.ID}:{item.Name}</li>
            })
            return (
                <ul>
                    {lists}
                </ul>
            )
        }
    });
    
    
    ReactDOM.render(<ItemList />,document.getElementById('app'))

    6、新增index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <h1>SuperAgent!</h1>
        <div id="app"></div>
        <script src="build.js/index.js"></script>
    </body>
    </html>

    WebApi源码

  • 相关阅读:
    git push提交出现Everything up-to-date提示问题
    启动Dubbo项目注册Zookeeper时提示zookeeper not connected异常原理解析
    linux环境搭建mysql5.7总结
    Hadoop学习笔记:运行wordcount对文件字符串进行统计案例
    kafka3.0创建topic出现zookeeper is not a recognized option
    sql_waf绕过
    win11环境映像劫持
    vulnhub靶场—devguru
    vulhub-Presidential靶场解题过程
    php命令执行无回显判断及利用方法
  • 原文地址:https://www.cnblogs.com/AskySun/p/4980828.html
Copyright © 2020-2023  润新知