对promise的理解 返回的是一个promise对象,这个promise可以是成功也可以是失败,成功时返回resolve,失败时返回reject。当所有返回值为resolve时执行链式调用,否则抛出异常,一般用于需要等所有接口都返回时再执行下一步,或者用于表单校验。promise,前端用于处理异步操作的一种技术,通过获取操作的结果来执行下一步或处理异常。使用promise会返回一个promise对象,
再谈Echarts ECharts是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。官网链接。
尚硅谷项目——尚医通(2) 进行src别名配置不用再根据相对路径引入文件,有效防止引入时地址错误,找到 vite.config.ts 配置文件!观察项目,大致分为上中下结构,所以我们可以将整个项目分为三个层次,并且顶部和底部要保持显示,中间为路由切换。在index.js文件我对路由跳转做了其他配置,首页重定向到home页面,点击路由跳转时自动回到页面顶部。中间为路由组件,当点击不同界面时进行跳转,初步拆分为医院首页路由和医院详情路由,后续根据情况不同做修改。目前顶部只做静态展示,后续登录逻辑逐步添加,css部分已省略。
uni-app- 网络请求、数据缓存、图片上传和预览 在 detail.vue 页面中 设置三个按钮,分别用于 将 data 存储在本地缓存中、取指定 key 对应的内容、移除指定 key。将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。在 detail.vue 页面中为按钮配置点击事件,并点击按钮后发送get请求。可直接查看 uni-app官方文档 - 媒体 - 图片,更为细致。
vue配置vuex,vuex模块化 在store文件中引入vuex,若在mian.js文件中引入会报错,因为import语句变量提升,在store中找不到要使用的vuex,因此会报错。也是接两个参数,第一个参数是state对象,第二个参数是传过来的数据,就是仓库中的属性,将数据添加到仓库身上。注意Vue2一定要安装vuex3,如果是vue3可以直接。getters用于数据的加工,将数据处理成好写的方式。这个函数来接(做菜),一般都写成。3.用mapGetters。展示数据,1.用计算属性。对应函数的大写,意思是。2.用mapState。
vue(9) 解决浏览器跨域问题,github案例,三种插槽的方式 说明:跨域就是违反同源策略,同源策略就是协议、域名、端口号三个必须完全一样解决跨域请求数据问题,要么让后端加上那个Access-Control-Allow-Origin', '*',要么用jsonp的script的src属性,但这两种用的不多,我们还有第三种方式,那就是借助一个代理服务器,其端口号和请求端口号一致(这里以8080举例)解决浏览器跨域问题,四个方式,Ajax原生,库,fetch,axios,除了fetch(兼容性较差),其他都是基于Ajax原生封装,通常采用axios发送请求。
vue(7) todoList案例 三:涉及组件的一些方法和不同组件修改数据要对其他组件产生影响,也可以用到props配置项,子组件向父组件传值时,要父组件给子组件一个函数,然后在子组件通过某些方法调用这个函数将值传回去,例如下面代码,将函数传给Header,再在Header中调用这个函数。兄弟组件之间要想进行通信,目前所有方法都是写在App.vue中,通过子组件向父组件传值完成每个小功能,因为数据通过App.vue时会重新进行计算,所以每个组件拿到的值都是最新值,但是要想直接通过两个兄弟组件进行传值,又该如何操作呢。
vue(6)props配置项,mixin(混入),scoped属性 可以接受其他组件传过来的数据1.先在其他组件写好要传递的数据一般来说要进行数据的修改,因此属性名前面要加:2.接受数据2.3限制类型,指定默认值接收注意:1.props的优先级最高,有重名的数据先读取这里面的数据2.一般不在props中修改数据,如果要修改的话可现在data中重新创建一个对象,让它指向要修改的数据// 混合:可以把多个功能相同的配置提取成一个对象。
vue(5) 单文件,配置脚手架、分析脚手架结构,ref属性 1.创建组件,template里面插入数据2.将组件暴露出去,暴露在App.vue中3.写一个main.js文件,再次暴露4.在HTML中引入main.js2)App.vue3)main.js。
vue(4)组件的使用 第一个是组件名,第二个是组件对象,使用全局注册是要将它写在new Vue上面,否则其他局部注册时就找不到这个使用全局注册的组件,因为已经渲染到页面上去了,然后就不用再在components里面写入了。组件概念:我理解为是一个功能或模块的封装,将每个板块单独写成一部分再集合到App中,哪里需要就在哪里引入,api:一个程序到另一个程序的接口,调用。组件的使用:1.创建组件 2.注册组件 3.使用组件(组件标签,脚手架中可使用自闭和标签)(2):在new vue配置中,this指向是vue的实例对象。
vue(3) 模板语法,可以将标签卸载里面,需注意的是只能有一个根节点,不能同时并列写多个标签,且换行要用``(要有一个根节点才生成dom树)。:数据创建完毕,数据监测,数据代理,开始解析模板,生成虚拟dom,此时不显示内容。:在挂载之前,未经编译的dom,存入真实dom,所有对dom的操作都不奏效。:此时呈现的是真实dom,挂载完毕,可以进行操作,至此初始化过程结束。1.mounted:发送ajax请求,启动定时器,绑定事件等。:数据更新完成,此时页面也是新的。大多数情况下不能调用此方法。:数据更新,但页面未变。
Vue(2) 同理,先在data中创建两个对象,用作更新后的函数名,形参为初始值,改变值,谁改变就监视谁,可以不用写返回值,计算属性能实现的都能用监视属性实现,且监视属性可以实现异步处理,计算属性当数据发生改变时才会重新计算,且其默认方法是get(),参考资料来自。写法2:computed:{ 返回值:{get(){ 代码块 } } }计算属性的返回值就是函数名,将返回值作为插值语法渲染到页面当中。本人更愿意使用第一种方法,更简单简洁。
初识vue 如上,想要在原有数据中更新内容,且此时输入框有东西,若在最后一行加入数据则不影响,因为id默认在最后一个,当要在非最后一排添加数据时,则会错位,因为id发生了变化,js底层工作原理是利用key值,先对比相同的key值,若原虚拟dom与更新后的虚拟dom一样,则将内容不变渲染到真实dom上,此时就发生了错位,因此,为避免该情况发生,需要给每个dom元素设置唯一的key值。
安装nodemon nodemon:基于node,可以帮我们自动重启应用,当文件内容修改时。2.在根目录下安装 npm install -g nodemon。3.使用nodemon xxx.js启动服务。后续修改js文件时直接刷新即可。1.要先安装node.js。
初识AJAX /事件绑定,处理服务端返回的结果,on,当什么的时候,readystate(表示状态),0(未初始化),1(调用open方法完毕),2(调用send方法完毕),3(表示服务端返回部分结果),4(服务端返回所有结果) change:改变。:Asyncronous JavaScript And XML,异步的JS和XML,向服务器发送异步请求,无刷新获取数据和服务器进行通信,它不是新的语言,是将现有标准组合在一起的新方式。:一种规则,约定了两块,客户端给服务器发送内容:请求报文,返回内容:响应报文。