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中的组件通信,而本篇博客将会带你更上一层 ...
随机推荐
- PS2023下载安装保姆级教程中文汉化完整版
PS2023Windows安装教程退出安全软件①:下载PS2023安装包 ②:打开下载好的文件,鼠标右键把安装包解压③:打开解压好的"PS 24.0.0"文件夹,找到并选中&quo ...
- 【云原生 · Kubernetes】KubeVirt热迁移
[云原生 · Kubernetes]KubeVirt热迁移 检查节点和kubevirt状态 启用热迁移 创建虚拟机 在虚拟机上启动一个服务 迁移虚拟机 热迁移是KubeVirt支持的一个常见虚拟化特性 ...
- AR手势识别交互,让应用更加“得心应手”
现如今, AR技术不断发展,人们不再满足于运用键盘.鼠标等简单器械来实现传统的人机交互模式.随着用户接触机器的多样化,繁琐的操作不但对一些用户有门槛,而且还增加其学习成本:如果能用自然且符合日常生活习 ...
- 面试官:介绍一下 Redis 三种集群模式
小码今天去面试. 面试官:给我介绍一下Redis集群, 小码:啊,平时开发用的都是单机Redis,没怎么用过集群了. 面试官:好的,出门右转不谢. 小码内心困惑:在小公司业务量也不大,单机的 Redi ...
- intel Pin:动态二进制插桩的安装和使用,以及如何开发一个自己的Pintool
先贴几个你可能用得上的链接 intel Pin的官方介绍Pin: Pin 3.21 User Guide (intel.com) intel Pin的API文档Pin: API Reference ( ...
- Hexo+Gitee免费搭建静态博客
前言 这是一篇利用 Gitte Pages + hexo 搭建属于自己博客的教程,也是自己这个博客搭建好以后的第一篇文章,搭建的过程中也参考了各路大佬的文章,期间遇到了一些问题,所以写这一篇文章即是记 ...
- 李宏毅机器学习笔记:从0到写AI
part1.基本介绍 1.机器学习的三个任务 一般情况下,我们在机器学习中有三个基本任务,分别是Regression Classification和Structured Regression是计算数值 ...
- 静态文件配置,django连接MySQL,ORM基本操作
静态文件 什么是静态文件 静态文件是不怎么经常变化的文件,主要针对html文件所使用的到的各种资源. css文件.js文件.img文件.第三方框架文件 django针对静态文件资源需要单独开始一个目录 ...
- SQLMap入门——查询当前用户下的所有数据库
确定网站存在注入后,用于查询当前用户下的所有数据库 python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 --dbs
- JavaScript:操作符:算术运算符(加减乘除模幂)及其隐式转换数据类型
加法+ 减法- 乘法* 除法/ 模运算% 幂运算**,即a ** b求的是a的b次方 执行上述运算时,当两个操作数有非数字时,JS会隐式转换为数字,再进行运算: 一些特殊的非数字,会进行如下转换: t ...