vue基础教程


1.执行npm install

2.安装stylus,(npm install之后node_module已经有了stylus,但还是要再安装一次)

npm install --save-dev stylus-loader stylus
安装了之后,应该就可以直接在vue文件中写stylus了


3.配置webpack.base.js 快捷导入组件和common目录下的资源

resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      '@': resolve('src'),
      'components':path.resolve(__dirname,'../src/components'),
      'common':path.resolve(__dirname,'../src/common')

    }

4.配置api调用


本地调用的话,开启本地localhost,并在localhost下建项目文件夹如ybjccc/api/v1/test/
在test文件夹下放php接口文件


a.npm install superagent -D


b.在main.js引入api.js

// 引用API文件
import api from './config/api'
// 将API方法绑定到全局
Vue.prototype.$api = api

c.编写api.js

http://blog.csdn.net/fungleo/article/details/53202276

// 配置API接口地址
var root = 'http://xxxx';
// 引用superagent
var request = require('superagent');

// 自定义判断元素类型JS

function toType(obj) {
  return ({}).toString.call(obj).match(/s([a-zA-Z]+)/)[1].toLowerCase()
}


// 参数过滤函数
function filter_null(o) {
  for (var key in o) {
    if (o[key] == null) {
      delete o[key]
    }
    if (toType(o[key]) == 'string') {
      o[key] = o[key].trim()
      if (o[key].length == 0) {
        delete o[key]
      }
    }
  }
  return o
}
/*
 接口处理函数
 这个函数每个项目都是不一样的,我现在调整的是适用于
 https://cnodejs.org/api/v1 的接口,如果是其他接口
 需要根据接口的参数进行调整。参考说明文档地址:
 https://cnodejs.org/topic/5378720ed6e2d16149fa16bd
 */
function _api_base(method, url, params, success, failure) {
  var r = request(method, url).type('text/plain')
  if (params) {
    params = filter_null(params);
    if (method === 'POST' || method === 'PUT') {
      if (toType(params) == 'object') {
        params = JSON.stringify(params);
      }
      r = r.send(params)
    } else if (method == 'GET' || method === 'DELETE') {
      r = r.query(params)
    }
  }
  r.end(function(err, res) {
    if (err) {
      alert('api error, HTTP CODE: ' + res.status);
      return;
    }
    if(res.statusCode==200)
    {
      var obj=JSON.parse(res.text);
      if(success)
      {
        success(obj);
      }
    }
    else
    {
      var obj=JSON.parse(res.text);
      if(failure)
      {
        failure(obj)
      }
      else
      {
        alert("api statuscode :"+res.statusCode);
      }
      return;
    }
  });
};

// 返回在vue模板中的调用接口
export default {
  get: function(url, params, success, failure) {
    return _api_base('GET', root + '/' + url, params, success, failure)
  },
  post: function(url, params, success, failure) {
    return _api_base('POST', root + '/' + url, params, success, failure)
  },
  put: function(url, params, success, failure) {
    return _api_base('PUT', root + '/' + url, params, success, failure)
  },
  delete: function(url, params, success, failure) {
    return _api_base('DELETE', root + '/' + url, params, success, failure)
  },
}



调用实例

methods: {
      get_data: function(params) {
        var v = this
        if (!params) params = {}
        // 我们这里用全局绑定的 $api 方法来获取数据,方便吧~

        v.$api.get('index.php','',function (r) {
            console.log(r.result);
        })
      },
    }

基本框架

http://blog.csdn.net/fungleo/article/details/53213167

原文地址:https://www.cnblogs.com/norm/p/7079352.html