代码是计算机程序的基本构成单位,它是由一定的规则和语法组成的文字信息,用来表达计算机指令。代码可以用来控制计算机,实现特定功能。
代码可以分为高级语言和低级语言。高级语言是一门人工语言,具有易于理解、易于使用的特性,可以直接在计算机上运行。而低级语言是一门机器语言,具有高效、快速的特性,但不易于理解和使用。
代码书写时要遵循一定的标准和原则:要注意标准化、可重复性、可扩展性、可测试性、可复用性、可阅读性、可扩展性以及正常运行的要求。
此外,代码书写还应遵循一些开发原则:尽量使用标准库函数而不是内部函数;尽量使用面向对象方法而不是传统方法;尽量使用异常处理而不是返回错误代码;尽量使用异步方法而不是同步方法。
#include <stdio.h> // 声明头文件 int main() // 声明主函数 { // 函数体开始 printf("Hello World!\n"); // 输出Hello World! return 0; // 返回0 } // 函数体结束
信息
这是一个低级的内部 API 更改,不会影响大多数开发人员。
下面是对这些变化的高层次总结:
false
。相反,它被设置为 attr=“false”。移除 attribute,使用 null
或者 undefined
。如需更深入的解释,请继续阅读!
在 2.x,我们有以下策略来强制 v-bind
的值:
value
的 ,
,``,等等。falsy
的,Vue 会移除它们 (undefined
,null
or false
) 另外加上它们 (见这里和这里)。contenteditable
,draggable
和 spellcheck
),Vue 会尝试强制将它们串起来 (目前对 contenteditable
做了特殊处理,修复 vuejs/vue#9397)。falsy
值 (undefined
,null
,or false
) 并按原样设置其他值 (见这里)。下表描述了 Vue 如何使用普通非布尔 attribute 强制“枚举 attribute”:
绑定表达式 | foo 正常 |
draggable 枚举 |
---|---|---|
:attr="null" |
/ | draggable="false" |
:attr="undefined" |
/ | / |
:attr="true" |
foo="true" |
draggable="true" |
:attr="false" |
/ | draggable="false" |
:attr="0" |
foo="0" |
draggable="true" |
attr="" |
foo="" |
draggable="true" |
attr="foo" |
foo="foo" |
draggable="true" |
attr |
foo="" |
draggable="true" |
从上表可以看出,当前实现 true
强制为 "true"
但如果 attribute 为 false
,则移除该 attribute。这也导致了不一致性,并要求用户在非常常见的用例中手动强制布尔值为字符串,例如 aria-*
attribute 像 aria-selected
,aria-hidden
,等等。
我们打算放弃“枚举 attribute”的内部概念,并将它们视为普通的非布尔 HTML attribute。
"true"
和 "false"
以外的值,甚至可以使用 contenteditable
等 attribute 的关键字`
对于非布尔 attribute,如果 attribute 为 false
,Vue 将停止删除它们,相反强制它们为 "false"
。
true
和 false
之间的不一致性,并使输出 aria-*
attributes 更容易下表描述了新行为:
绑定表达式 | foo 正常 |
draggable 枚举 |
---|---|---|
:attr="null" |
/ | / † |
:attr="undefined" |
/ | / |
:attr="true" |
foo="true" |
draggable="true" |
:attr="false" |
foo="false" † |
draggable="false" |
:attr="0" |
foo="0" |
draggable="0" † |
attr="" |
foo="" |
draggable="" † |
attr="foo" |
foo="foo" |
draggable="foo" † |
attr |
foo="" |
draggable="" † |
†: 变更
布尔 attributes 的强制保持不变。
缺少枚举 attribute 和 attr="false"
可能会产生不同的 IDL attribute 值 (将反映实际状态),描述如下:
缺少枚举attr | IDL attr & 值 |
---|---|
contenteditable |
contentEditable → "inherit" |
draggable |
draggable → false |
spellcheck |
spellcheck → true |
为了保持原有的行为,并且我们将强制使用 false
为 "false"
,在 3.x Vue 中,开发人员需要将 v-bind
表达式解析为 false
或 "false"
,表示 contenteditable
和 spellcheck
。
在 2.x 中,枚举 attribute 的无效值被强制为 "true"
。这通常是无意的,不太可能大规模依赖。在 3.x 中,应显式指定 true
或 "true"
。
false
强制为 "false"
而不是删除 attribute
在 3.x,null
或 undefined
应用于显式删除 attribute。
Attributes | v-bind value 2.x |
v-bind value 3.x |
HTML 输出 |
---|---|---|---|
2.x “枚举attribute” i.e. contenteditable , draggable and spellcheck . |
undefined , false |
undefined , null |
removed |
true , "true" , "" , 1 , "foo" |
true , "true" |
"true" |
|
null , "false" |
false , "false" |
"false" |
|
其他非布尔attribute eg. aria-checked , tabindex , alt , etc. |
undefined , null , false |
undefined , null |
removed |
"false" |
false , "false" |
"false" |
#概览从 Vue 3.0 开始,过滤器已删除,不再支持。#2.x 语法在 2.x,开发者可以使用过滤器来处理通用文本格式。例如:templateh1B...
Vue 2.x 有许多全局 API 和配置,这些 API 和配置可以全局改变 Vue 的行为。例如,要创建全局组件,可以使用 Vue.component 这样...
#概览对内联特性的支持已被移除。#2.x 语法在 2.x 中,Vue 为子组件提供了 inline-template attribute,以便将其内部内容用作模...
#概览以下是变更的简要总结:非兼容:不再支持使用数字 (即键码) 作为 v-on 修饰符非兼容:不再支持 config.keyCodes#2.x 语法在...