流程
1.安装json-server的两个依赖
npm -g i json-server
npm install -g json-server
2.安装axios依赖
npm i axios
3.全局导入axios使用src目录下main.js文件内
import axios from ‘axios’;
4.配置全局默认地址:src目录下main.js文件内
axios.defaults.baseURL = ‘http://localhost:8081’
5.创建一个json文件夹,json文件夹内新创一个data.json
在这里json数据如下:
{ "list": [ { "id": 1, "name": "吃饭", "flag": false }, { "id": 2, "name": "睡觉", "flag": true }, { "id": 3, "name": "打豆豆", "flag": true } ] }
6.新建终端选择json文件夹运行:
json-server --watch --port 8081 data.json
7.复制运行得到的链接进浏览器运行出结果如下:
8.接下来就是App.vue里的代码:
8.1:data中设置一个新的数组:用来接收json的数据
data() { return { data: [], }; },
8.2:在methods方法内新建一个方法用来获取json的数据
async getList() { const result = await axios.get("list"); this.data = result.data; },
8.3methods方法外面新建一个生命周期函数:created(){}
created() { this.getList(); },
8.4将获取到的值放入页面上显示:
<div> <table border> <tr> <td>id</td> <td>name</td> <td>flag</td> </tr> <tr v-for="item in data" :key="item.id"> <td>{{ item.id }}</td> <td>{{ item.name }}</td> <td><input type="checkbox" v-model="item.flag" @change="complete(item)" /></td> </tr> </table> </div>
8.5:如图:
9.修改点击复选框修改json中flag的值
9.1:复选框里面设置一个chang事件
9.2:methods方法内部使用change方法
methods: { // 获取json的值 async getList() { const result = await axios.get("list"); this.data = result.data; }, // 修改状态 async complete(item) { const result = await axios.patch(`list/${item.id}`, { flag: item.flag, }); if (result.status !== 200) return console.log("修改状态失败"); alert("修改成功"); }, },
这个时候你再去改变input框状态时,刷新一下你的json文件,你就会发现你的json文件的数据也被修改了。
不止是可以修改input框的状态,还有如下方法:
使用:查询:get axios.get(“list”)
模糊查询:get axios.get(list?name_like=${this.findInput}) //需要在请求地址中携带一个_like=‘xx’
增加:post axios.post(“list”, this.xxx);
删除:delete axios.delete(list/${id})
修改:1.put : 全量的修改,会把原来所有的数据覆盖掉,需要改的和不需要改的都需要传参 2.patch : axios.patch(list/${item.id}, {flag:item.flag});
还有更多操作需要自己去了解一下,这个json-server在前端是非常好用的一个东西。