一、导入相关包

<script src="../lib/vue2.6.10.min.js"></script>
<script src="../lib/axios-v0.17.1.js"></script>

二、设置容器

<div id="app">
</div>

三、 测试数据能否接收成功

Vue.prototype.$http = axios
var vm = new Vue({
el: '#app',
data: {
list:[]
//所有品牌的数组
},
//让页面一加载进来就能获取get请求的数据
created(){
this.getList()
},
methods:{
async getList(){
//const result = await this.$http.get('http://api.cms.liulongbin.top/api/getprodlist')
// console.log(result)
//返回的result中有我们想要的对象--data
//直接拿到我们想要的data对象
const {data}= await this.$http.get('http://api.cms.liulongbin.top/api/getprodlist')
console.log(data)
}
}
})

四、 将拿到的data中的数据放入list列表中

判断是否请求成功,请求的message信息中有是否请求成功的标识数据status=0

async getList(){
const {data} = await this.$http.get('http://api.cms.liulongbin.top/api/getprodlist')
// console.log(data)
// if(data.status == 0){
// this.list = data.message
// }
// 简写成:
if (data.status === 0) this.list = data.message
}

五、 引入bootstrap样式文件并创建页面渲染数据

<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>CTime</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr v-for="item in list" :key="item.id">
<td>{{ item.id }}</td>
<td>{{ item.name }}</td>
<td>{{ item.ctime }}</td>
<td>
<a href="#" @click.prevent="del(item.id)">删除</a>
</td>
</tr>
</tbody>
</table>

来吧展示:

六、 实现添加功能

  1. 创建添加区域
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">添加新品牌</h3>
</div>
<div class="panel-body form-inline">
<div class="form-group">
<label>品牌名称:</label>
<input type="text" class="form-control">
</div>
<div class="form-group">
<input type="button" value="添加" class="btn btn-primary">
</div>
</div>
</div>
  1. 为添加的input文本框绑定添加事件
<input type="button" value="添加" class="btn btn-primary" @click="add()">
  1. 在data中定义name和要添加的内容做双向数据绑定
<label>品牌名称:</label>
<input type="text" class="form-control" v-model="name">
el: '#app',
data: {
list: [],
name:''
}
  1. 创建添加方法
async add(){
// trim()去掉空格
if(this.name.trim().length <=0) return alert('品牌列表不能为空')
const {data} = await this.$http.post('http://api.cms.liulongbin.top/api/addproduct',{name:this.name.trim()})
// 如果添加成功,则重新调用获取了列表的方法
if(status == 0) this.getList()
this.name=''
}

来吧展示:

七、实现删除功能

  1. 在a标签中绑定删除方法并阻止a链接跳转
<td>
<a href="#" @click.prevent="del(item.id)">删除</a>
</td>
  1. 创建删除方法del()
async del(id) { // 根据Id删除品牌
const { data } = await this.$http.get('http://api.cms.liulongbin.top/api/delproduct/' + id)
// 当删除OK,重新刷新列表
if (data.status === 0) this.getList()
}

八、配置axios的请求路径

方式一:

axios.defaults.baseURL = 'http://api.cms.liulongbin.top';

方式二:

// 注意:   axios.create() 方法,调用的返回值,是一个新的 axios 实例,在 调用 create 函数的时候,可以初始化一些默认配置项,比如,请求的 baseURL 地址
Vue.prototype.$http = axios.create({
baseURL: 'http://api.cms.liulongbin.top'
})

然后把请求的路径更换一下即可

比如:

async getList(){
const {data} = await this.$http.get('/api/getprodlist')
if (data.status === 0) this.list = data.message
},
.......

vue学习笔记(四)---- 品牌管理案例的更多相关文章

  1. vue学习笔记(四)事件处理器

    前言 在上一章vue学习笔记(三)class和style绑定的内容中,我们学习了如何在vue中绑定class和style,介绍了常用的绑定方法,class的数组绑定和对象绑定以及style的数组绑定和 ...

  2. Vue学习笔记四:跑马灯效果

    目录 跑马灯原理 HTML 箭头函数 计时器 跑马灯效果 跑马灯原理 先讲讲跑马灯的原理,就是一行字,会滚动,思路是这样的,使用substring方法,一个获取字符串的第一个字,一个获取1后面所有的字 ...

  3. VUE 学习笔记 四 计算属性和监听器

    1.计算属性 对于任何复杂逻辑,你都应当使用计算属性 <div id="example"> <p>Original message: "{{ me ...

  4. Vue学习笔记九:列表案例

    目录 前言 Bootstrap插件下载 Bootstrap表格和面板 增加数据,v-model和v-on 删除数据,事件修饰符和找索引的两种方法 查询数据,foreach和filter 全部的HTML ...

  5. Vue学习笔记十三:Vue+Bootstrap+vue-resource从接口获取数据库数据

    目录 前言 SpringBoot提供后端接口 Entity类 JPA操作接口 配置文件 数据库表自动映射,添加数据 写提供数据的接口 跨域问题 前端修改 效果图 待续 前言 Vue学习笔记九的列表案例 ...

  6. vue学习笔记(六)表单输入绑定

    前言 在上一章vue学习笔记(四)事件处理器这一篇博客的内容中,我们已经了解vue是如何绑定事件的,而本篇博客主要讲解的是vue中表单输入的绑定,通常我们自己提交信息的时候都是通过表单将信息到服务器的 ...

  7. Vue学习笔记-Vue.js-2.X 学习(四)===>脚手架Vue-CLI(基本工作和创建)

    (五) 脚手架Vue-CLI 一 Vue-CLI前提(nodejs和webpack) 二  Vue学习-nodejs按装配置,Node.js 就是运行在服务端的 JavaScript. 1. 去nod ...

  8. kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  9. vue学习笔记2

    Vue.js - Day2 品牌管理案例 添加新品牌 删除品牌 根据条件筛选品牌 1.x 版本中的filterBy指令,在2.x中已经被废除: filterBy - 指令 <tr v-for=& ...

  10. vue学习笔记(十)路由

    前言 在上一篇博客vue学习笔记(九)vue-cli中的组件通信内容中,我们学习组件通信的相关内容和进行了一些组件通信的小练习,相信大家已经掌握了vue-cli中的组件通信,而本篇博客将会带你更上一层 ...

随机推荐

  1. Intel GPU Gen 9 架构

    * 参考spec:the-compute-architecture-of-intel-processor-graphics-gen9-v1d0.pdf SOC 架构 Gen9 架构是早期用在igpu ...

  2. Java中String被称为不可变字符串的原因

    很多东西,看似可变,实际上不过是是新桃换旧符罢了. 代码: /** * String之所以被称为不可变字符串 */ static void testString(){ String str = &qu ...

  3. Seata Server 1.5.2 源码学习

    Seata 包括 Server端和Client端.Seata中有三种角色:TC.TM.RM,其中,Server端就是TC,TM和RM属Client端.Client端的源码学习上一篇已讲过,详见 < ...

  4. 嵌入式-C语言基础:二维数组

    二维数组的每个元素都是一个一维数组,例如int arr[2][3]={{1,2,3},{4,5,6}}; 下面通过几个例子来对二维数组进行深入了解:二维数组可以看作是一个父数组,他的每个元素都是一个一 ...

  5. shell文件报错syntax error near unexpected token '$'\r''

    本来跑的好好得一个文件,在windows下修改了,然后移植到linux就报错了. 找了一圈以下是解决方案: 这种情况发生的原因是因为你所处理的文件换行符是dos格式的"\r\n" ...

  6. MySQL JDBC驱动版本与数据库版本的对应关系及注意事项

    MySQL JDBC驱动版本与数据库版本的对应关系及注意事项 事情发生 学了三遍的servlet,经典老师又教的第一万遍登陆注册,并且让实现,并且让演示,我们老师可能和之前的小学期公司老师 完全没有沟 ...

  7. Python: 你所不知道的星号 * 用法

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/FHyosiG_tegF5NRUEs7UdA 本文大概 1193 个 ...

  8. MySQL进阶实战3,mysql索引详解,上篇

    一.索引 索引是存储引擎用于快速查找记录的一种数据结构.我觉得数据库中最重要的知识点,就是索引. 存储引擎以不同的方式使用B-Tree索引,性能也各有不同,各有优劣.例如MyISAM使用前缀压缩技术使 ...

  9. 【Java SE】Day09 继承、super、this、抽象类

    一.继承 1.概述 多个类具有相同属性和行为,共性抽取到一个类中(父类) 父类更通用,子类更具体 2.继承后的成员变量 本类:this.成员变量名 父类:super.成员变量名 3.继承后的成员方法 ...

  10. 1.4 Apache Hadoop完全分布式集群搭建-hadoop-最全最完整的保姆级的java大数据学习资料

    目录 1.4 Apache Hadoop 完全分布式集群搭建 1.4.1 虚拟机环境准备 1.4.2 集群规划 1.4.3 安装Hadoop 1.4.3.1 集群配置 1.4.3.1.1 HDFS集群 ...