【Vue.js 入门与实战】--品牌列表-全局配置数据接口的根域名

简介: 全局配置数据接口的根域名

品牌列表-全局配置数据接口的根域名

 

全局配置数据接口的根域名

每次发起Ajax时,getAllList()add()del(id)一共三个,每次前面都带了一个服务器的根地址

'http://vue.studyit.io/api/delproduct/',这样写不便于后期的改造,假如未来服务器的IP地址或域名更换,更换之后几乎每个页面至少要发起一个Ajax请求,由于项目很大需要改很多个域名。

 

getAllList()add()del(id)三次请求中都带着根路径,不写域名地址直接向api发起请求,或只想写/api/getprodlist,因为调用的get方法属于$http$httpvue-resource发展的。

 

查看vue-resource文档中是否有相应的功能——将根路径提取出来,打开浏览器搜索vue-resource,点开npm官网查看configuration网页。

Set default values using the global configuration.的意思是使用全局配置来设置一些默认值。

Vue.http.options.root = '/root';设置数据api接口的根域名。

root是根的意思,http是用来发送网络请求的。

设置完根域名后发起每个请求后,http://vue.studyit.io/将不用书写直接删掉。

 

Note that for the root option to work, the path of the request must be relative. This will use this the root option: Vue.http.get('someUrl') while this will not: Vue.http.get('/someUrl').的意思是请注意,

 

要使root选项起作用,请求的路径必须是相对的。这将使用根路径选项:Vue.http.get'someUrl'),而这不会提出拼接:Vue.http.get'/someUrl')。

如果在上面启用了服务器请求的数据接口的根地址,下面发起请求是需要使用相对地址。

 

<script>

     // 如果我们通过全局配置了,请求的数据接口 根域名,则,在每次单独发起 http 请求的时候,请求的 url 路径,应该以相对路径开头,前面不能带 / ,否则 不会启用根路径做拼接;

 

// 设置数据api接口的根域名。

     Vue.http.options.root = 'http://vue.atudyit.io/';

     // 创建Vue实例,得到ViewMode

     var vm = new Vue ({

           el:'#app',

           data: {

                 name:'',

                 list: [ // 存放所有品牌列表的数据

                 ]

           },

           created() {    // vm 实例的datamethods初始化完毕后,vm实例会自动执行created这个生命周期函数

                 this.getAllList()

           },

           methods: {

             getAllList() { // 获取所有的品牌列表

 

// 分析:

                 //1.由于已经导入了Vue-resource这个包,所以,可以直接通过 this.$http 来发起数据请求

                 //2.根据接口API文档,知道获取列表的时候应该发起一个 get 请求

              //3.this.$http.get(‘url’).then(function(result){}

              / /4.当通过 then 指回调函数之后,在回调函数中,可以拿到数据服务器返回的 result

      //5.先判断result.status 是否等于0,如果等于0,就成功了,可以把result.message 赋值给 this.list ;如果不等于0,可以弹框提醒,获取数据失败!

 

this.$http,get('http://vue.studyit.io/api/getprodlist').then(result => {

 

// 注意:通过$http获取到的数据,都在result.body中放着

 

 

var result = result.body

                      if (result.status === 0) {

                            //成功了

                            this.getALLlist()

                            }else{

// 失败了

                                  alert('获取数据失败!')

                            }

                       })

             },

 

add() { // 添加品牌列表到后台服务器

this.$http,get('api/addproduct',{name:this.name }{emulateJSON:true }).then(result => {

if (result.status === 0) {

     //成功了

     //添加完成后,只需要手动,在调用一下getAllList就能刷新品牌列表了

     this.getALLlist()

     //清空 name

     this.name = ''

     } else {

     //失败了

      alert('添加失败!')

     }

             },

             del(id) {

 

this.$http,get('http://vue.studyit.io/api/delproduct/' + id).then(result => {

                      if (result.body.status === 0) {

                            //删除成功

                            this.getALLlist()

                            }else{

alert('删除失败!')

                            }

                   })

               }

           }

     });

</script>

相关文章
|
2月前
|
存储 安全 API
Next.js 实战 (九):使用 next-auth 完成第三方身份登录验证
这篇文章介绍了next-auth,一个为Next.js设计的身份验证库,支持多种认证方式,如电子邮件和密码、OAuth2.0提供商(如Google、GitHub、Facebook等)以及自定义提供商。文章包含了如何配置Github Provider以及会话管理,并提到了适配器Adapters在next-auth中的作用。最后,文章强调了next-auth的强大功能值得进一步探索。
114 10
|
4天前
|
Prometheus 监控 JavaScript
Node.js连接池配置的五个隐形陷阱与防御体系:从创业公司血泪史说起
文章以创业公司血泪史为例,详细阐述了 Node.js 连接池配置的五个隐形陷阱及防御体系。包括连接泄漏、配置参数算术错误、异步异常导致崩溃、跨连接事务问题、监控缺失,并介绍了相应的解决办法和终极防御手段,强调在确定性与不确定性中寻找平衡,建立自适应机制。
29 13
|
2天前
|
JSON JavaScript 前端开发
菜鸟之路Day23一一JavaScript 入门
本文介绍了 JavaScript 的基础内容,包括 JS 的引入方式、基础语法、数据类型、运算符、类型转换、函数、对象(如 Array、String、自定义对象、JSON、BOM 和 DOM)、事件监听,以及 Vue 框架的初步使用。重点讲解了内部和外部脚本的引入、变量声明(var、let、const)、常见输出语句、数组与字符串的操作方法、DOM 操作及事件绑定,并通过实例展示了 Vue 的双向数据绑定和常用指令(v-bind、v-model、v-on、v-if、v-for 等)。
18 7
|
2月前
|
设计模式 数据安全/隐私保护
Next.js 实战 (七):浅谈 Layout 布局的嵌套设计模式
这篇文章介绍了在Next.js框架下,如何处理中后台管理系统中特殊页面(如登录页)不包裹根布局(RootLayout)的问题。作者指出Next.js的设计理念是通过布局的嵌套来创建复杂的页面结构,这虽然保持了代码的整洁和可维护性,但对于特殊页面来说,却造成了不必要的布局包裹。文章提出了一个解决方案,即通过判断页面的skipGlobalLayout属性来决定是否包含RootLayout,从而实现特殊页面不包裹根布局的目标。
118 33
|
2月前
|
中间件 API
Next.js 实战 (八):使用 Lodash 打包构建产生的“坑”?
这篇文章介绍了作者在使用Nextjs15进行项目开发时遇到的部署问题。在部署过程中,作者遇到了打包构建时的一系列报错,报错内容涉及动态代码评估在Edge运行时不被允许等问题。经过一天的尝试和调整,作者最终删除了lodash-es库,并将radash的部分源码复制到本地,解决了打包报错的问题。文章最后提供了项目的线上预览地址,并欢迎读者留言讨论更好的解决方案。
58 10
|
3月前
|
前端开发 API 开发者
Next.js 实战 (五):添加路由 Transition 过渡效果和 Loading 动画
这篇文章介绍了Framer Motion,一个为React设计的动画库,提供了声明式API处理动画和页面转换,适合创建响应式用户界面。文章包括首屏加载动画、路由加载Loading、路由进场和退场动画等主题,并提供了使用Framer Motion和next.js实现这些动画的示例代码。最后,文章总结了这些效果,并邀请读者探讨更好的实现方案。
|
2月前
|
JavaScript 前端开发 API
Next.js 实战 (六):如何实现文件本地上传
这篇文章介绍了在Next.js中如何实现文件上传到本地的方法。文章首先提到Next.js官方文档中没有提供文件上传的实例代码,因此开发者需要自行实现,通常有两种思路:使用Node.js原生上传或使用第三方插件如multer。接着,文章选择了使用Node.js原生上传的方式来讲解实现过程,包括如何通过哈希值命名文件、上传到指定目录以及如何分类文件夹。然后,文章展示了具体的实现步骤,包括编写代码来处理文件上传,并给出了代码示例。最后,文章通过一个效果演示说明了如何通过postman模拟上传文件,并展示了上传后的文件夹结构。
|
3月前
|
JavaScript 前端开发
【JavaScript】——JS基础入门常见操作(大量举例)
JS引入方式,JS基础语法,JS增删查改,JS函数,JS对象
|
3月前
Next.js 实战 (二):搭建 Layouts 基础排版布局
本文介绍了作者在Next.js v15.x版本发布后,对一个旧项目的重构过程。文章详细说明了项目开发规范配置、UI组件库选择(最终选择了Ant-Design)、以及使用Ant Design的Layout组件实现中后台布局的方法。文末展示了布局的初步效果,并提供了GitHub仓库链接供读者参考学习。
102 1
Next.js 实战 (二):搭建 Layouts 基础排版布局
|
2月前
|
监控 安全 中间件
Next.js 实战 (十):中间件的魅力,打造更快更安全的应用
这篇文章介绍了什么是Next.js中的中间件以及其应用场景。中间件可以用于处理每个传入请求,比如实现日志记录、身份验证、重定向、CORS配置等功能。文章还提供了一个身份验证中间件的示例代码,以及如何使用限流中间件来限制同一IP地址的请求次数。中间件相当于一个构建模块,能够简化HTTP请求的预处理和后处理,提高代码的可维护性,有助于创建快速、安全和用户友好的Web体验。

热门文章

最新文章