vue-ajax

vue 项目中常用的 2 个 ajax 库

vue-resource: vue 插件, 非官方库, vue1.x 使用广泛

axios: 通用的 ajax 请求库, 官方推荐, vue2.x 使用广泛

vue-resource 的使用

示例代码

// 引入模块

import VueResource from 'vue-resource'

// 使用插件

Vue.use(VueResource)

// 通过 vue/组件对象发送 ajax 请求

this.$http.get('/someUrl').then((response) => {

// success callback

console.log(response.data)

//返回结果数据

},

(response) => {

// error callback

console.log(response.statusText)

//错误信息

})

axios 的使用

示例代码

// 引入模块

import axios from 'axios'

// 发送 ajax 请求

axios.get(url)

.then(response => {

console.log(response.data) // 得到返回结果数据

})

.catch(error => {

console.log(error.message)

})

搜索示例代码

/*main.js*/

/*

入口JS

*/

import Vue from 'vue'

import VueResource from 'vue-resource'

import App from './App.vue'

// 声明使用插件(安装插件)

Vue.use(VueResource) // 所有的vm和组件对象都多了一个属性: $http, 可以通过它的get()/post()发ajax请求

// 创建vm

/* eslint-disable no-new */

new Vue({

el: '#app',

components: {App}, // 映射组件标签

template: '' // 指定需要渲染到页面的模板

})

/*App.vue*/

import Search from './components/Search.vue'

import Main from './components/Main.vue'

export default {

components: {

Search,

UsersMain: Main

}

}

/*Search.vue*/

Search Github Users

Search

import PubSub from 'pubsub-js'

export default {

data () {

return {

searchName: ''

}

},

methods: {

search () {

const searchName = this.searchName.trim()

if(searchName) {

// 分发一个search的消息

PubSub.publish('search', searchName)

}

}

}

}

/*Main.vue*/

请输入关键字搜索

请求中...

{{errorMsg}}

{{user.username}}

import PubSub from 'pubsub-js'

import axios from 'axios'

export default {

data () {

return {

firstView: true, // 是否显示初始页面

loading: false, // 是否正在请求中

users: [], // 用户数组

errorMsg: '' //错误信息

}

},

mounted () {

// 订阅消息(search)

PubSub.subscribe('search', (message, searchName) => { // 点击了搜索, 发ajax请求进行搜索

// 更新数据(请求中)

this.firstView = false

this.loading = true

this.users = []

this.errorMsg = ''

// 发ajax请求进行搜索

const url = `https://api.github.com/search/users?q=${searchName}`

axios.get(url)

.then(response => {

// 成功了, 更新数据(成功)

this.loading = false

this.users = response.data.items.map(item => ({

url: item.html_url,

avatarUrl: item.avatar_url,

username: item.login

}))

})

.catch(error => {

// 失败了, 更新数据(失败)

this.loading = false

this.errorMsg = '请求失败!'

})

})

}

}

.card {

float: left;

width: 33.333%;

padding: .75rem;

margin-bottom: 2rem;

border: 1px solid #efefef;

text-align: center;

}

.card > img {

margin-bottom: .75rem;

border-radius: 100px;

}

.card-text {

font-size: 85%;

}

vue UI 组件库

Mint UI

主页: http://mint-ui.github.io/#!/zh-cn

说明: 饿了么开源的基于 vue 的移动端 UI 组件库

Elment

主页: http://element-cn.eleme.io/#/zh-CN

说明: 饿了么开源的基于 vue 的 PC 端 UI 组件库

下载 Mint UI

下载: npm install --save mint-ui

实现按需打包

下载 npm install --save-dev babel-plugin-component

修改 babel 配置

"plugins": ["transform-runtime",["component", [

{

"libraryName": "mint-ui",

"style": true

}

]]]

mint-ui 组件分类

标签组件

非标签组件

使用 mint-ui 的组件

//index.html

vue_demo

if ('addEventListener' in document) {

document.addEventListener('DOMContentLoaded', function() {

FastClick.attach(document.body);

}, false);

}

if(!window.Promise) {

document.writeln('

}

//main.js

/*

入口JS

*/

import Vue from 'vue'

import App from './App.vue'

import {Button} from 'mint-ui'

// 注册成标签(全局)

Vue.component(Button.name, Button)

/* eslint-disable no-new */

new Vue({

el: '#app',

components: {App}, // 映射组件标签

template: '' // 指定需要渲染到页面的模板

})

//App.vue

Test

import { Toast } from 'mint-ui'

export default {

methods: {

handleClick () {

Toast('提示信息')

}

}

}

Elment

下载 npm i element-ui -S

实现按需打包

下载 npm install babel-plugin-component -D

修改 babel 配置

{

"presets": [["es2015", { "modules": false }]],

"plugins": [

[

"component",

{

"libraryName": "element-ui",

"styleLibraryName": "theme-chalk"

}

]

]

}

示例代码

//main.js

import Vue from 'vue'

import { Button, MessageBox, Message} from 'element-ui'

import App from './App.vue'

Vue.component(Button.name, Button)

Vue.component(MessageBox.name, MessageBox)

Vue.component(Message.name, Message)

Vue.prototype.$alert = MessageBox.alert

Vue.prototype.$message = Message

/* 或写为

* Vue.use(Button)

* Vue.use(Message)

*/

/* eslint-disable no-new */

new Vue({

el: '#app',

components: {App}, // 映射组件标签

template: '' // 指定需要渲染到页面的模板

})

//App.vue

打开消息提示

export default {

methods: {

open() {

this.$alert('这是一段内容', '标题名称', {

confirmButtonText: '确定',

callback: action => {

this.$message({

type: 'info',

message: `action: ${ action }`

})

}

})

}

}

}

ajax插件库,03.vue-ajax、vue UI 组件库相关推荐

  1. Vue2基础、组件化编程、脚手架、Vuex、Vue路由、UI组件库

    尚硅谷张天禹老师讲课 学习视频 1.Vue简介 Vue2中文官网 1.1 Vue 介绍 一套用于构建用户界面的渐进式JavaScript框架 构建用户界面:把数据通过某种办法变成用户界面 渐进式:可以 ...

  2. [vue] 你有自己用vue写过UI组件库吗?

    [vue] 你有自己用vue写过UI组件库吗? {{item.title}}<dl v-if="item.list.length > 0"><dd v-fo ...

  3. 5 款最棒的 Vue 移动端 UI 组件库 - 特别针对国内使用场景推荐

    本文完整版:<最棒的 Vue 移动端 UI 组件库 - 特别针对国内使用场景推荐> Vue 移动端 UI 组件库推荐 Vant 3 - 有赞移动 UI 组件库,支持 Vue 3 微信小程序 ...

  4. Vue (十五) --------- UI 组件库

    目录 一.移动端常用 UI 组件库 1. Vant 2. Vux 3. Cube UI 4. Mint UI 二.PC 端常用 UI 组件库 1. Element UI 2. IView UI 3. ...

  5. Vue 移动端UI组件库

    1. vonic vonic 一个基于 vue.js 和 ionic 样式的 UI 框架,用于快速构建移动端单页应用,很简约. 文档 | github地址 | 在线预览 2. vux vux 基于We ...

  6. Vue移动端UI组件库

    1. vonic vonic 一个基于 vue.js 和 ionic 样式的 UI 框架,用于快速构建移动端单页应用,很简约. 中文文档 | github地址 | 在线预览 image 2. vux ...

  7. 【Vue】Vue学习笔记——UI组件库和常用插件

    文章目录 6. UI组件库和常用插件 6.1 Element-ui 6.2 Vue-router 6.2.1 基本用法 6.2.2 跳转 6.2.3 路由嵌套 6.2.4 路由参数传递 6.3 Axi ...

  8. Vue UI 组件库(移动端常用 UI 组件库,PC 端常用 UI 组件库,Element UI基本使用,Element UI按需引入)

    文章目录 Vue UI 组件库 7.1 移动端常用 UI 组件库 7.2 PC 端常用 UI 组件库 7.3 Element UI基本使用 7.4 Element UI按需引入 Vue UI 组件库 ...

  9. 12 个不可错过的 Vue UI 组件库,请查收

    1. Element UI Element UI 是一套为开发者.设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库.它是一个用于 Web 的 UI 组件库 ,除了 Vue 之外,它还具有Re ...

  10. 12个Vue UI 组件库

    Vue.js 是一个渐进式 javascript 框架,用于构建 UIS(用户界面)和 SPA(单页应用程序).UI 组件库提高了我们的开发效率,增强了应用的整体外观.感觉.交互性和可访问性,下面就来 ...

最新文章

  1. 新版信标的信号板调试
  2. php mysql 登录注销_PHP与MYSQL实现用户登录注销
  3. php 智能输入提示插件,PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能_php实例...
  4. 使用Foxmail登录阿里企业邮箱(钉钉邮箱)
  5. 校园食堂订餐管理系统企业点餐软件
  6. 百度地图API:自定义途经点路线拼接
  7. 2000字谏言,给那些想学Python的人,建议收藏后细看!
  8. Unity背包系统 设计流程
  9. 实时系统解决方案 TIBCO Rendezvous — 技术介绍(消息中间件|基于数据库的主动推送)...
  10. nginx转发https网页加载http图片乱码问题
  11. C#:文本文件读写操作 FileHelper
  12. 【快递100接口BUG】数据库时区为0时区,而实际时区为东八区时间,导致存入时间多出八个小时
  13. 2022-2028年中国建筑设计行业市场调查研究及发展前景展望报告
  14. 视频压缩软件,视频压缩软件哪个最好用?
  15. 网页回拨-Web CallBack
  16. 3.29 判断电脑无线网卡是否支持5GHz频段
  17. java字符转转长整型_P104 将数字字符串转换成长整型整数 ★★
  18. linux查看某个nas盘io,每天学习一个命令:pidstat 查看进程消耗资源
  19. 真当Flutter不能热更新?QQ团队开源动态化Flutter,稳进大厂
  20. linux 锁定用户目录,Linux vfpd锁定用户目录

热门文章

  1. C语言在VS2017环境下写俄罗斯方块的感悟
  2. 华为eNSP模拟器学习(一)
  3. 大数据人力资源服务平台正式上线
  4. SVN服务器从Windows迁移到Linux
  5. 关于32bit与4Gib的问题
  6. 用C++写一个简单的服务器和客户端
  7. jsonp获取服务器数据的方式
  8. Citrix WebInterface 安装指导
  9. Java机器学习库ML之三Sampling(采样)
  10. python如何统计出现的次数_Python统计日志中每个IP出现次数的方法