# h5-2103-三 **Repository Path**: htmhl/h5-2103-tris ## Basic Information - **Project Name**: h5-2103-三 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-17 - **Last Updated**: 2021-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vue MVVM 架构 - M - Model,模型、数据 - V - View,视图 - VM - ViewModel,关联 Model 与 View,实现双向数据绑定,View 中的变化能够引起 Model 自动变化,Model 的变化也能引起 View 的自动重新渲染。 [官网](https://cn.vuejs.org/) ## 体验 ### 兼容性 Vue **不支持** IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性(利用 Object.defineProperty() 实现数据劫持)。 ### 安装 [开发版本](https://cn.vuejs.org/js/vue.js):包含完整的警告和调试模式 [生产版本](https://cn.vuejs.org/js/vue.min.js):删除了警告 ### 声明式渲染 ```js const vm = new Vue({ el: '#app', // View data: { // Model products: [], cart: [] }, methods: { // 方法 addToCart() {}, removeFromCart() {}, add() {} } }) console.log(vm.cart) console.log(vm.$data.cart) ``` 说明: - data 中定义的所有数据(除以 `$` 或 `_` 开头的属性),会被直接挂载到创建的 Vue 实例下,即可以使用 `vm.cart` 获取在 data 中定义的 cart 数组对象 - $data 属性,表示的是创建 Vue 实例时指定的 data 数据对象。 - methods 中定义的各方法也会被直接挂载到 Vue 实例下。 - methods 中定义的各方法内部使用到的 this 通常指向的是当前创建的 `Vue` 实例本身 ## 模板语法 ### 插值 ``` {{ expression }} ``` {{ }} 双花括号内部写的是 JS 表达式,通常使用的是 data 中绑定的属性,无论何时,只要 data 中绑定的对应属性数据发生了变化,页面 `{{ }}` 插值位置处就会**响应式更新**。 {{ }} 双花括号内部的表达式内容会被转义,以防止 XSS 攻击。 ### 原始 html 由于 `{{}}` 会转义表达式内容,如果确实需要渲染 html 文本,可使用 `v-html` 指令来实现: ```html
``` **注意:**一般使用 `v-html` 来渲染可信 html 数据,通常不用其渲染用户输入的数据(因为可能导致 XSS 跨站脚本攻击) ### 属性绑定 不能在绑定标签中属性值时使用 `{{}}` 语法,而是需要使用 `v-bind` 指令(或其简写形式:`:`) ```html