然后json我去检验过了没问题,所以实在不懂哪里有错,有没有大神指点一下,万分感谢
tips:学识有限,难免错漏,仅供参考。
不过,问题来了。由于我们的应用是一个单页的客户端应用,如果没有适当的服务器配置, 用户在浏览器中直接访问 mit("setPayResult", JSON.parse(payResult));
key 的特殊 attribute 主要作用在于给节点做唯一标识,以便高效的更新虚拟 DOM。 在新旧 nodes 对比时辨识 VNodes。如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法。 而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在的元素。
有相同父元素的子元素必须有独特的 key。重复的 key 会造成渲染错误。
父子组件中几个钩子的执行顺序。父组件是子组件的容器,从这角度理解,那么应当是父组件先创建,然后才能容纳子组件创建。 而挂载渲染,子组件作为父组件一部分,父组件的挂载渲染完成,应当以子组件为前提。(特例除外)
'' 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。和 '' 相似,'' 是一个抽象组件: 它自身不会渲染一个 DOM 元素,也不会出现在组件的父组件链中。
$router 是包括了路由的钩子函数和跳转方法等的路由实例对象,常用于跳转,例如一个携带参数的跳转:
route可用于获取router.push 携带过来的参数,是路由信息对象,包括 name,query,params 等路由信息。例如下面这样使用:
对于 vue 中 div#app 节点外的元素样式,如果 '' 加上了 scoped,那么此时样式穿透符是不能穿透修改 div#app 节点外的元素样式的。 这是因为 scoped 的作用域仅局限在 div#app 容器内部,所以此时只能修改 div#app 容器内的样式。 例如 el 组件的下拉选的弹出层是 div#app 的兄弟元素,body的子元素,在 '' 中使用样式穿透符修改该弹出层的样式是无效的。
全局后置守卫钩子先执行,组件内的 beforeRouteEnter 钩子后执行。
6.解析异步路由组件。 12.调用 beforeRouteEnter 守卫中传给 next 的回调函数,创建好的组件实例会作为回调函数的参数传入。①使用clear属性清除浮动。
②创建BFC环境,利用BFC的特性,BFC具有排除外部浮动和包含内部浮动的特性。
developer.mozilla 上列明的典型的可替换元素只有下面几个:
而其他元素仅在特定情况下作为可替换元素处理:
HTML 规范也说了 元素可替换,因为 "image" 类型的 元素就像一样被替换。 但是其他形式的控制元素,包括其他类型的 元素,被明确地列为非可替换元素(non-replaced elements)。
所以,如果强调典型的可替换元素,那么 iframe,video,embed,img 更合适作为代表。
以下是 HTML 中所有的块级元素列表(虽然”块级“在新的 HTML5 元素中没有明确定义):
因为 img 还是可替换元素(replaced element)又称置换元素,所以与 span 不同可设置宽高。
用法:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。
应用场景:因为 vue 是异步执行 dom 更新的,所以当你希望在更新数据之后,操作新的视图, 那么你的操作逻辑应写在 Vue.nextTick(callback) 的回调中,而这个回调会在dom 更新循环结束之后执行。 否则,因为异步更新 dom 的原因,如果你不是在 Vue.nextTick(callback) 的回调中执行操作新视图, 那么可能会发生意外。例如你在 created()钩子 是不能操作 dom 的,但你可以在此调接口更新数据, 如果你此时希望接口更新完毕数据后,接着调用操作 dom 的逻辑,那么最后将这部分操作 dom 的逻辑, 放置在Vue.nextTick(callback) 的回调函数中。
我用到 nginx 的地方是,一是作为 http 服务器,为我做测试实验,以及一些静态资源提供 http 服务。二通过 nginx 代理实现跨域。 三是利用 nginx 的代理转发,实现同一域名下部署多个项目。
优点: 在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能, 这些拓展令 CSS 更加强大与优雅。提高样式的可维护性,一定程度上可以提高工作效率。
缺点:浏览器“不认识” css 预处理语言,需要预处理工具转换才能在浏览器上生效,重新编译的耗时可能略微大于原生 css。
官网:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。 它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
State。共享的的全局的的属性或状态,主要在 state 中声明存放。
注意从 Vue 3.0 开始,getter 的结果不再像计算属性一样会被缓存起来。
Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字符串的事件类型 (type)和一个回调函数 (handler)。 这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数
Module。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。 每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割。
CSS非标准属性。厂商在实现非标准的CSS属性时,通常会加上前缀,甚至在将来会实现的标准也加。当标准被发布后,厂商会将前缀移除。
书写建议私有属性(非标准)放在前面,标准属性写在后面
浏览器解析器遇到script脚本的解析逻辑:
1.情形一:页面中引入的script脚本会阻塞浏览器解析渲染文档。
浏览器解析文档时,默认是按照排列顺序向下解析的,当遇到script标签时,和其他标签元素一样(例如一个div), 会先解析该元素(脚本),解析完成后再继续向下走完成剩余文档的解析和渲染。也就是说默认情况下,script脚本会阻塞文档的解析渲染。
注意,如果我们的script脚本是放在页面底部的内联脚本,那么它对文档的解析渲染,在结果上影响不大。
但如果script脚本是外部脚本(通过网址引入的那种),那么这个脚本需要下载和解析执行, 这期间会阻塞浏览器对文档的向下解析渲染,直至脚本下载执行完成,才会继续向下解析渲染。如果这个脚本出错了, 可能还会导致整个页面永远无法正常渲染呈现。
注意,DOM树的生成是受JavaScript代码执行影响的,JavaScript代码会“阻塞”页面UI的渲染。
2.情形二:页面中引入的script脚本不会阻塞浏览器解析渲染文档。
情形一中提到的脚本执行的同步和阻塞的情形,是指默认情况下的script脚本加载方式。script标签有两个属性,一个是defer(翻译为延迟), 二是asyn(翻译为异步,没错,和我们的常见的ajax和axios的异步是一个意思), 这两个属性都可以改变脚本的加载执行方式(在浏览器支持的情况下,这两的兼容性,后面会补充)。
延迟:延迟是指当浏览器解析到script脚本时,会继续向下载入和解析文档,等到文档载入解析完成且可以操作文档时,才开始执行脚本。
异步:异步是指当浏览器解析到script脚本时,会立刻下载和执行脚本,但同时浏览器解析器也会继续向下解析渲染文档, 不会造成阻塞的现象。这使得脚本可以尽快的被载入执行,这很想我们前端调用post异步接口,并不影响文档的正常解析渲染。
ps:defer和async属性像是在告诉浏览器,链接进来的脚本不会使用document.write(),也不会生成文档内容, 因此浏览器在下载脚本时可以继续解析和渲染文档。
值得注意的是,使用defer属性的脚本,当有多个的时候, 这些脚本会按照他们在文档中排列的顺序载入执行。而使用asyn属性的脚本,当有多个的时候,会顺序开始触发载入, 但谁先完成载入就谁先执行,这就是说,他们的执行顺序可能是无序不确定的。在有的时候知道这点很重要,因为这可能涉及一些有强制顺序的逻辑处理。
一个json数据只有且只有一个数据,这个数据的数据类型必须是json支持的数据类型
包含所有的数字,包括整数,小数:例如100,12.4,-2.3
正数前面不能加‘+’。json支持科学计数法
使用双引号括起来的数据;例如:“abc”, “abc123”
相当于Python的列表,用[]括起来,多个元素用逗号隔开;
相当于Python的字典,用{}括起来,多个键值对用逗号隔开,
将json数据转换成python数据(通过爬虫获取到别人提供的json数据,在python中出处理它)
注意:字符串中的内容必须是字符串数据
将python数据转换成json数据(python写后台接口将数据提供给客户端)
“abc”(单引号变成双引号) |
不能转化成json,报错 |
注意:转换后都是字符串类型
将指定的对象转换成json数据,以字符串的形式返回这儿的对象指的就是python数据
注意:返回值是字符串,并且字符串的内容是json数据
json文件不一定是后缀是.json都是json文件,json文件是文件内容是json数据的文件。
load(文件对象) - 将指定文件中的内容读出来,并且转换成python对应数据。文件对象对应的文件必须是json文件。
dump(对象, 文件对象) - 将指定对象转换成是json格式的字符串,然后写入指定的文件中。
注意:这儿的对象对应的类型必须是能够转换成json的数据类型。
python中的数据请求(HTTP请求),是通过第三方库requsets来提供的。
get/post 方法都是发送请求获取接口提供的数据
获取数据的方法都是get请求
url - 需要获取的数据的接口地址
params - 字典,参数列表(给服务器发送请求的时候需要传给服务器的数据)
完整的接口:协议://主机地址/路径?参数名1=值1&参数名2=值2
发送请求,并且获取返回的数据,
服务器返回的数据叫响应
知道某段代码会出现异常,而且没有办法避免,同时又不希望出现异常的时候程序不崩溃;这个时候就可以通过异常捕获来让程序不崩溃并且自行处理异常。
a、try - except(可以捕获所有类型的异常)
代码段1(可能出现异常的代码段) 代码段2(出现异常后处理异常的代码段)执行过程:执行代码段1,如果代码段1出现异常,程序不崩溃,直接执行代码段2
如果代码段1中没有出现异常,就不执行代码段2而是直接执行后面的其他语句。
b、try - except 错误类型 (捕获指定类型的异常)
代码段2(只有代码段1中出现了指定类型的异常才捕获)执行过程:代码段1中出现指定类型错误就执行代码段2
d、try - except 错误类型1 - except 错误类型2…(同时捕获多种异常,可以对不同的异常做不同的处理)
说明:错误类型 - 可以是系统类型的错误,也可以是自定义错误类型(要求这个值必须是一个类,而且是Exception的子类)