diff --git a/docs/vue.html b/docs/vue.html new file mode 100644 index 00000000..13f74d51 --- /dev/null +++ b/docs/vue.html @@ -0,0 +1,262 @@ + + + + +Vue 3 备忘清单 + & vue cheatsheet & Quick Reference + + + + + + +

+ + + +Vue 3 备忘清单

+

渐进式 JavaScript 框架 Vue 3 备忘清单的快速参考列表,包含常用 API 和示例。

+

入门

+

介绍

+

Vue 是一套用于构建用户界面的渐进式框架

+ + +

注意:Vue 3.x 版本对应 Vue Router 4.x 路由版本

+

创建应用

+ +

已安装 16.0 或更高版本的 Node.js

+
$ npm init vue@latest
+
+

指令将会安装并执行 create-vue,它是 Vue 官方的项目脚手架工具

+
✔ Project name: … <your-project-name>
+✔ Add TypeScript? … No/Yes
+✔ Add JSX Support? … No/Yes
+✔ Add Vue Router for Single Page Application development? … No/Yes
+✔ Add Pinia for state management? … No/Yes
+✔ Add Vitest for Unit testing? … No/Yes
+✔ Add Cypress for both Unit and End-to-End testing? … No/Yes
+✔ Add ESLint for code quality? … No/Yes
+✔ Add Prettier for code formatting? … No/Yes
+
+Scaffolding project in ./<your-project-name>...
+Done.
+
+ +

安装依赖并启动开发服务器

+
$ cd <your-project-name>
+$ npm install
+$ npm run dev
+
+

当你准备将应用发布到生产环境时,请运行:

+
$ npm run build
+
+

此命令会在 ./dist 文件夹中为你的应用创建一个生产环境的构建版本

+

应用实例

+ +
import { createApp } from 'vue'
+
+const app = createApp({
+  data() {
+    return { count: 0 }
+  }
+})
+app.mount('#app')
+
+

挂载应用

+
<div id="app">
+  <button @click="count++">
+    {{ count }}
+  </button>
+</div>
+
+

通过 CDN 使用 Vue

+
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
+<div id="app">{{ message }}</div>
+<script>
+  const { createApp } = Vue
+  createApp({
+    data() {
+      return {
+        message: 'Hello Vue!'
+      }
+    }
+  }).mount('#app')
+</script>
+
+ +

使用 ES 模块构建版本

+
<div id="app">{{ message }}</div>
+<script type="module">
+  import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'
+  createApp({
+    data() {
+      return {
+        message: 'Hello Vue!'
+      }
+    }
+  }).mount('#app')
+</script>
+
+ +

模板语法

+

文本插值

+
<span>Message: {{ msg }}</span>
+
+

使用的是 Mustache 语法 (即双大括号),每次 msg 属性更改时它也会同步更新

+

原始 HTML

+ +
<p>Using text interpolation: {{ rawHtml }}</p>
+<p>Using v-html directive: <span v-html="rawHtml"></span></p>
+
+

双大括号{{}}会将数据解释为纯文本,使用 v-html 指令,将插入 HTML

+

Attribute 绑定

+
<div v-bind:id="dynamicId"></div>
+
+

简写

+
<div :id="dynamicId"></div>
+
+

布尔型 Attribute

+
<button :disabled="isButtonDisabled">
+  Button
+</button>
+
+ +

动态绑定多个值

+ +
data() {
+  return {
+    objectOfAttrs: {
+      id: 'container',
+      class: 'wrapper'
+    }
+  }
+}
+
+

通过不带参数的 v-bind,你可以将它们绑定到单个元素上

+
<div v-bind="objectOfAttrs"></div>
+
+

使用 JavaScript 表达式

+
{{ number + 1 }}
+{{ ok ? 'YES' : 'NO' }}
+{{ message.split('').reverse().join('') }}
+
+<div :id="`list-${id}`"></div>
+
+

仅支持表达式(例子都是无效)

+
<!-- 这是一个语句,而非表达式 -->
+{{ var a = 1 }}
+<!-- 条件控制也不支持,请使用三元表达式 -->
+{{ if (ok) { return message } }}
+
+

调用函数

+
<span :title="toTitleDate(date)">
+  {{ formatDate(date) }}
+</span>
+
+

指令 Directives

+
<p v-if="seen">Now you see me</p>
+
+

参数 Arguments

+
<a v-bind:href="url"> ... </a>
+<!-- 简写 -->
+<a :href="url"> ... </a>
+
+

绑定事件

+
<a v-on:click="doSomething"> ... </a>
+<!-- 简写 -->
+<a @click="doSomething"> ... </a>
+
+

动态参数

+
<a v-bind:[attributeName]="url"> ... </a>
+<!-- 简写 -->
+<a :[attributeName]="url"> ... </a>
+
+

这里的 attributeName 会作为一个 JS 表达式被动态执行

+

动态的事件名称

+
<a v-on:[eventName]="doSomething"> ... </a>
+<!-- 简写 -->
+<a @[eventName]="doSomething">
+
+

修饰符 Modifiers

+
<form @submit.prevent="onSubmit">
+  ...
+</form>
+
+

.prevent 修饰符会告知 v-on 指令对触发的事件调用 event.preventDefault()

+

指令语法

+
v-on:submit.prevent="onSubmit"
+──┬─ ─┬──── ─┬─────  ─┬──────
+  ┆   ┆      ┆        ╰─ Value 解释为JS表达式
+  ┆   ┆      ╰─ Modifiers 由前导点表示
+  ┆   ╰─ Argument 跟随冒号或速记符号
+  ╰─ Name 以 v- 开头使用速记时可以省略
+
+
+ diff --git a/docs/vue2.html b/docs/vue2.html index a23e05c0..160aad43 100644 --- a/docs/vue2.html +++ b/docs/vue2.html @@ -39,7 +39,7 @@ Vue2 备忘清单
-

渐进式 JavaScript 框架 Vue 2 备忘清单的快速参考列表,包含常用 API 和示例。

+

渐进式 JavaScript 框架 Vue 2 备忘清单的快速参考列表,包含常用 API 和示例。

入门

@@ -50,6 +50,7 @@
  • Vue Router 3.x 官方文档
  • +

    注意:Vue 2.x 版本对应 Vue Router 3.x 路由版本

    快速创建 Vue 项目 (Vue CLI)

    npx @vue/cli create hello-world
     
    diff --git a/index.html b/index.html index 4a06517a..d146051f 100644 --- a/index.html +++ b/index.html @@ -157,7 +157,12 @@ -Vue 2

    +Vue 2 + + + + +Vue 3 (努力中...)

    Nodejs