若是喜欢使用lower-level,使用标准的 fetch API. 好处是无需额外的加载一个外部资源。但没有被浏览器彻底支持,须要使用polyfill。所以使用Axios的更多一些。html
参考Axios的使用:前端
https://www.cnblogs.com/chentianwei/p/9705909.htmlvue
使用Vue cli3搭建一个用Fetch Api的组件。(见下文👇)node
https://scotch.io/@bedakb/lets-build-type-ahead-component-with-vuejs-2-and-fetch-apiwebpack
VueCli3文档https://cli.vuejs.org/zh/guide/(摘录见下文👇)ios
Fetch 的核心在于对 HTTP 接口的抽象,包括 Request
,Response
,Headers
,Body
,以及用于初始化异步请求的 global fetch
。得益于 JavaScript 实现的这些抽象好的 HTTP 模块,其余接口可以很方便的使用这些功能。git
Fetch 还利用到了请求的异步特性——它是基于 Promise
的。github
Fetch api 提供了一个js接口,用于访问和操做HTTP管道的部分,如响应和请求。web
注意正则表达式
例子:
fetch(`http://localhost:3000/api/v1/discussions/${encodeURIComponent(url)}/comments`, { headers: {accept: 'application/json'}, method: 'post', body: formData, }) .then(response => response.json()) .then(comment => commit('addComment', comment))
使用了箭头函数简化:
then(function(response) { return response.json() })
第一个then, 把响应的结果promise对象(也是Response对象)转化为json格式。
除此以外,咱们还能够根据须要把响应转化为其余格式:
第二个then, 执行一个函数。
Fetch API 的 Headers 接口容许您对HTTP请求和响应头执行各类操做。 这些操做包括检索,设置,添加和删除。
一个Headers对象有一个header list, 开始是空的,你可使用append("key", "value")方法添加key/value对儿。
Request.headers或者Response.headers获得Header对象。
Headers.headers()来构建一个新的Headers对象。
例子:
var myHeaders = new Headers(); myHeaders.append("Content-Type", "text/xml"); myHeaders.get("Content-Type") // 返回'text/xml'
new Request(url, {...})能够生成fetch()方法的2个参数。
例子:
const url = ''https://randomuser.me/api''; let data = { name: 'Sara' } var request = new Request(url, { method: 'post', body: data, headers: new Headers() }; fetch(request) .then(function() { //...这里处理从API获得的response data })
基于Vue.js进行快速开发的完整系统。(包括git)
@vue/cli是一个npm包,提供vue命令。它经过vue create来快速建立新项目的手脚架。
能够用vue serve进行快速原型开发。
能够经过vue ui命令打开一套图形化界面管理你的全部项目。
@vue/cli-service是一个开发环境依赖. npm包。局部安装在每一个@vue/cli建立的项目中。
vue-cli-service
命令,提供 serve
、build
和 inspect
提供如Babel/TypeScript 转译、ESLint 集成、单元测试和 end-to-end 测试等。
Vue CLI 插件的名字以 @vue/cli-plugin-
(内建插件) 或 vue-cli-plugin-
(社区插件) 开头
npm install -g @vue/cli # OR yarn global add @vue/cli
#用vue --version查看版本
须要Node.js 8.9以上版本。 可使用nvm(node version manger)
建立一个项目:
vue create hello-world
#和CLI2版本的命令不同
vue-cli-service serve
命令(英文叫作Binary)会启动一个开发服务器(dev server) (基于 webpack-dev-server) 并附带开箱即用的模块热重载 (Hot-Module-Replacement)。
npm run serve
# OR
yarn serve
# OR (使用最新的npm版本)
npx vue-cli-service serve
vue-cli-service build
会在 dist/
目录产生一个可用于生产环境的包(a production-ready bundle),带有 JS/CSS/HTML 的压缩。
#查看帮助文档
npx vue-cli-service help
#详细命令:
npx vue-cli-service help [command]
Vue CLI 使用了一套基于插件的架构。
查看package.json。全部插件都是以@vue/cli-plugin-开头的。
⚠️vue ui能够安装和管理插件。
//使用vue add vue add @vue/eslint vue add router vue add vuex
Preset
一个包含建立新项目所需预约义选项和插件的 JSON 对象,让用户无需在命令提示中选择它们。
在 vue create
过程当中保存的 preset 会被放在你的 home 目录下的一个配置文件中 (~/.vuerc
)。
[Vue warn]: Avoid using non-primitive value as key, use string/number value instead.
解决:
<li v-for="item in filtered" :key="item">
改为:
:key="item.id"
分析:
key
的特殊属性主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。
有相同父元素的子元素必须有独特的 key。重复的 key 会形成渲染错误。
nvm是一个简单的bash script来管理多个活动的node.js版本.
安装nvm: 具体看git:https://github.com/creationix/nvm , 有不少note提示和⚠️ 确认安装: command -v nvm 屏幕打印nvm,表示成功。
显示电脑上的版本:
nvm ls
安装新版本并使用这个版本:
nvm ls-remote #显示能够用的版本
nvm install 10.00.0 #或者其余版本
nvm use node
yarn add
: 安装一个包(以及任何它依赖的包)。yarn init
: 初始化包;yarn install
:用于安装一个项目的全部依赖。常见的使用场景是在你刚checkout 一份项目代码以后,或者须要使用其余开发者新增的项目依赖的时候。在本地node_modules目录安装package.json中列出的全部依赖。yarn remove
: 从当前包里移除一个未使用的包。package.json
里的依赖版本和 yarn 的 lock 文件是否匹配。(Rails app跟目录有package.json和yarn.lock两个文件)
一个包是一个包含代码的文件夹和一个描述包内容的package.json文件。
若是你想要使用其余包,首先要将它加入依赖列表:执行yarn add [package-name],来为项目安装所须要的包。
同时这个命令会更新package.json和yarn.lock文件,以便使本项目的其余开发者可使用yarn或者yarn install来安装相同的依赖。