通常一个应用会以一棵嵌套的组件树的形式来组织:
文章插图
例如,你可能会有页头、侧边栏、内容区等组件,每个组件又包含了其它的像导航链接、博文之类的组件 。
4.简单定义一个组件注意:在实际开发中,我们并不会用以下方式开发组件,而是采用 vue-cli 创建 .vue 模板文件的方式开发,以下方法只是为了让大家理解什么是组件 。
<div id="app"><beixi></beixi></div><script>//注册组件Vue.component("beixi",{template:'<li>hello</li>'});var app = new Vue({el:"#app",});</script>
说明:- Vue.component():注册组件
- beixi:自定义组件的名字
- template:组件的模板
<body><div id="app"><!--组件:使用props把值传递给组件--><blog-post v-for="item in items" v-bind:value="item"></blog-post></div><script>Vue.component("blog-post",{props:['value'],template:'<li>{{value}}</li>'});var app = new Vue({el:"#app",data:{items:['beixi','jzj','贾志杰']}});</script></body>
说明:v-for=“item in items”:遍历 Vue 实例中定义的名为 items 的数组,并创建同等数量的组件
v-bind:value=https://www.isolves.com/it/cxkf/kj/2022-08-02/“item”:将遍历的 item 项绑定到组件中 props 定义的名为 value属性上;= 号左边的 value 为 props 定义的属性名,右边的为 item in items 中遍历的 item 项的值
五、AxIOS异步通信1.什么是Axios Axios 是一个开源的可以用在浏览器端和 NodeJS 的异步通信框架,她的主要作用就是实现 AJAX 异步通信,其功能特点如下:
- 从浏览器中创建 XMLHttpRequests
- 从 node.js 创建 http 请求
- 支持 Promise API [JS中链式编程]
- 拦截请求和响应
- 转换请求数据和响应数据
- 取消请求
- 自动转换 JSON 数据
- 客户端支持防御 XSRF(跨站请求伪造)
中文文档:http://www.axios-js.com/
2.为什么要使用 Axios 由于 Vue.js 是一个 视图层框架 并且作者(尤雨溪)严格准守 SoC (关注度分离原则),所以 Vue.js 并不包含 AJAX 的通信功能,为了解决通信问题,作者单独开发了一个名为 vue-resource 的插件,不过在进入 2.0 版本以后停止了对该插件的维护并推荐了 Axios 框架 。少用jQuery,因为它操作Dom太频繁!
3.第一个 Axios 应用程序 咱们开发的接口大部分都是采用 JSON 格式,可以先在项目里模拟一段 JSON 数据,数据内容如下:创建一个名为 data.json 的文件并填入上面的内容,放在项目的根目录下
{"name": "贝西说","url": "https://blog.csdn.net/beixishuo","page": 1,"isNonProfit": true,"address": {"street": "太谷","city": "山西晋中","country": "中国"},"links": [{"name": "bilibili","url": "https://space.bilibili.com/474668932"},{"name": "贝西说","url": "https://blog.csdn.net/beixishuo"},{"name": "百度","url": "https://www.baidu.com/"}]}
完整示例:<!--引入 JS 文件--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script><!--在线引入axios 。在项目开发中会安装axios组件(npm install axios)--><script src="https://unpkg.com/axios/dist/axios.min.js"></script></head><body><div id="app"><div>{{info.name}}</div><div>{{info.address}}</div><a v-bind:href="info.url">贝西说</a></div><script>var app=new Vue({el:"#app",//data: 属性data:function(){//需要处理(返回)后台数据在页面上渲染时使用return{//请求的返回参数格式必须和json字符串一样info:{name:null,//相当于形参占位,实际参数data.json会赋予url:null,address:{street:null,city:null,country:null}}}},mounted:function(){//mounted钩子函数,相当于java中main函数 。可以调用methods中定义的函数// axios.get('data.json').then(resp=>(console.log(resp.data)));axios.get('data.json').then(resp=>(this.info=resp.data));}})</script></body>
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 乌龟冬眠期养护方法全套方案 乌龟冬眠怎么养
- 2022 年值得推荐的 Vue 库
- 王峰记忆法全套教程 王峰记忆法
- 新疆维吾尔自治区|和田玉手镯怎么挑选?最最实用的实操手册来啦!
- 一水二水是什么意思 全套过水是什么意思
- 全套施工现场质量管理制度 现场管理制度
- vue项目,实现页面局部刷新。非window.location.方式
- Vue学习笔记 git和码云的使用
- 骁龙8+|国漫巅峰联名!努比亚Z40S Pro灵笼限定版发布:4699元全套定制
- 一个 Java 猿眼中 Vue3 和 Vue2 的差异