vue学习笔记(四)---- 品牌管理案例
一、导入相关包
<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>
来吧展示:

六、 实现添加功能
- 创建添加区域
<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>
- 为添加的input文本框绑定添加事件
<input type="button" value="添加" class="btn btn-primary" @click="add()">
- 在data中定义name和要添加的内容做双向数据绑定
<label>品牌名称:</label>
<input type="text" class="form-control" v-model="name">
el: '#app',
data: {
list: [],
name:''
}
- 创建添加方法
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=''
}
来吧展示:

七、实现删除功能
- 在a标签中绑定删除方法并阻止a链接跳转
<td>
<a href="#" @click.prevent="del(item.id)">删除</a>
</td>
- 创建删除方法
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学习笔记(四)---- 品牌管理案例的更多相关文章
- vue学习笔记(四)事件处理器
前言 在上一章vue学习笔记(三)class和style绑定的内容中,我们学习了如何在vue中绑定class和style,介绍了常用的绑定方法,class的数组绑定和对象绑定以及style的数组绑定和 ...
- Vue学习笔记四:跑马灯效果
目录 跑马灯原理 HTML 箭头函数 计时器 跑马灯效果 跑马灯原理 先讲讲跑马灯的原理,就是一行字,会滚动,思路是这样的,使用substring方法,一个获取字符串的第一个字,一个获取1后面所有的字 ...
- VUE 学习笔记 四 计算属性和监听器
1.计算属性 对于任何复杂逻辑,你都应当使用计算属性 <div id="example"> <p>Original message: "{{ me ...
- Vue学习笔记九:列表案例
目录 前言 Bootstrap插件下载 Bootstrap表格和面板 增加数据,v-model和v-on 删除数据,事件修饰符和找索引的两种方法 查询数据,foreach和filter 全部的HTML ...
- Vue学习笔记十三:Vue+Bootstrap+vue-resource从接口获取数据库数据
目录 前言 SpringBoot提供后端接口 Entity类 JPA操作接口 配置文件 数据库表自动映射,添加数据 写提供数据的接口 跨域问题 前端修改 效果图 待续 前言 Vue学习笔记九的列表案例 ...
- vue学习笔记(六)表单输入绑定
前言 在上一章vue学习笔记(四)事件处理器这一篇博客的内容中,我们已经了解vue是如何绑定事件的,而本篇博客主要讲解的是vue中表单输入的绑定,通常我们自己提交信息的时候都是通过表单将信息到服务器的 ...
- Vue学习笔记-Vue.js-2.X 学习(四)===>脚手架Vue-CLI(基本工作和创建)
(五) 脚手架Vue-CLI 一 Vue-CLI前提(nodejs和webpack) 二 Vue学习-nodejs按装配置,Node.js 就是运行在服务端的 JavaScript. 1. 去nod ...
- kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置
KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...
- vue学习笔记2
Vue.js - Day2 品牌管理案例 添加新品牌 删除品牌 根据条件筛选品牌 1.x 版本中的filterBy指令,在2.x中已经被废除: filterBy - 指令 <tr v-for=& ...
- vue学习笔记(十)路由
前言 在上一篇博客vue学习笔记(九)vue-cli中的组件通信内容中,我们学习组件通信的相关内容和进行了一些组件通信的小练习,相信大家已经掌握了vue-cli中的组件通信,而本篇博客将会带你更上一层 ...
随机推荐
- 论文笔记 - Calibrate Before Use: Improving Few-Shot Performance of Language Models
Motivation 无需参数更新的 In-Context Learning 允许使用者在无参数的更新的情况下完成新的下游任务,交互界面是纯粹的自然语言,无 NLP 技术基础的用户也可以创建 NLP ...
- PYQT5 学习
zetcode教程 汉化版: https://maicss.gitbook.io/pyqt5-chinese-tutoral/ 官方网站: https://www.riverbankcomputing ...
- 解决“fast-forward, aborting”问题
1. 现象 对某一个远程仓库 git pull 过程中,报错如下: # zl @ srv123 in ~/git/radxa/kernel [14:09:54] $ git pull remote: ...
- gin-巧用Context传递多种参数
目录 引言: 1.巧妙包装gin.Context为NewContext 2 在使用gin.Use对每一个请求的Context进行组装 3 在路由绑定时解析出NewContext来为应用层函数提供参数, ...
- Java开发环境安装与配置(干货详细教程)
Java开发环境安装与配置(干货详细教程) 对于文章中出现的任何错误请大家批评指出,会及时做出修改! 安装JDK JDK是 Java 语言的软件开发工具包要学习 链接Java中国官网https:/ ...
- 【DL论文精读笔记】Image Segmentation Using Deep Learning: A Survey 图像分割综述
深度学习图像分割综述 Image Segmentation Using Deep Learning: A Survey 原文连接:https://arxiv.org/pdf/2001.05566.pd ...
- PP视频(PPTV聚力)web接口分析
前言 前几天我想看一个番剧, 正好搜索到了 PP视频,我才知道PP视频就是PPTV聚力,我想把番剧下载下来,结果发现视频竟然不是m3u8格式,而是多段mp4,所以简单的写了个脚本,可以在不登录的情况下 ...
- 使用Python实现多线程、多进程、异步IO的socket通信
多线程实现socket通信服务器端代码 import socket import threading class MyServer(object): def __init__(self): # 初始化 ...
- JS基础笔记合集(1-3)
JavaScript合集 1. JS入门基础 2. JS数据类型 3. JS运算符 4. JS流程控制 5. JS对象 6. JS函数 7. JS面向对象 8. JS数组 9. JS内置对象 我追求理 ...
- JavaScript入门⑤-欲罢不能的对象原型与继承-全网一般图文版
JavaScript入门系列目录 JavaScript入门①-基础知识筑基 JavaScript入门②-函数(1)基础{浅出} JavaScript入门③-函数(2)原理{深入}执行上下文 JavaS ...