# vue基本语法 **Repository Path**: chengaobin/vueJiBenYuFa ## Basic Information - **Project Name**: vue基本语法 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-02-06 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 一、 Vue.js简介 ### 1. Vue.js是什么 Vue.js也称为vue,读音/vju:/,类似 view,错误读音v-u-e 版本 v1.x v2.x + 是一个构建用户界面的框架,数据驱动的 + 通过简单的API实现响应的数据绑定和组合的视图组件 + 是一个mvvm框架,和angular、react类似 + 更容易上手、小巧 参考:[Vue.js官网](https://cn.vuejs.org/) ### 2. vue和angular的区别 #### 2.1 angular + 上手较难 + 指令以ng-xxx开头 + 所有属性和方法都存储在$scope中 + 由Google维护 #### 2.2 vue + 简单、易学 + 指令以v-xxx开头 + HTML代码+JSON数据,再创建一个vue实例 + 由个人维护 ## 二、 起步 ### 1. 下载核心库vue.js 版本 v1.0.28 ### 2.Hello World(对比angular) #### 2.1 angular实现 js: var app=angular.module('myApp',[]); app.controller('MyController',['$scope',function($scope){ $scope.msg='Hello World'; }]); html:
{{msg}}
#### 2.2 vue实现 js: new Vue({ el:'#itany', data:{ msg:'Hello World' } }); html:
{{msg}}
#### 2.3 安装vue-devtools插件,便于在Chrome中调用vue 步骤: 1.git clone https://github.com/vuejs/vue-devtools.git 2.cd vue-devtools cnpm install 3.npm run build 4.打开chrome的更多工具——扩展程序,将工程中的shells目录中的chrome目录拖放到扩展程序中即可 ## 三、 指令 ### 1. 什么指令? 用来扩展html标签的功能 angular中常用的指令: ng-model ng-repeat ng-click ng-show/ng-hide ### 2. vue中常用的指令 #### 2.1 v-model 双向数据绑定,一般用于表单元素 #### 2.2 v-for 对数组或对象进行循环操作 #### 2.3 v-on 用户绑定事件,用法v-on:事件名="函数" #### 2.4 v-show 显示隐藏元素,只有v-show指令,没有v-hide ## 四、 练习:用户管理 使用BootStrap+vue ## 五、 事件和属性 ### 1. 事件 #### 1.1 事件简写 v-on:click="",简写方式 @click=""(推荐) #### 1.2 事件对象$event 包含事件相关信息,如事件源、事件类型等 #### 1.3 事件冒泡 概念:当一个元素上的事件被触发时,事件从事件源开始,往上冒泡直到页面的根元素,这一过程称为事件冒泡 阻止冒泡: a)原生js方式:依赖事件对象 e.stopPropagation(); e.cancelBubble=true; b)vue方式:不依赖事件对象 @click.stop="" (推荐) #### 1.4 默认行为 概念:触发某些事件时默认会执行的行为,如:点击链接时默认会跳转,右键点击时默认会弹出菜单 阻塞默认行为: a)原生js方式:依赖事件对象 e.preventDefault() b)vue方式:不依赖事件对象 @click.prevent="" (推荐) #### 1.5 键盘事件 @keydown @keypress @keyup 回车:@keydown.13="" @keydown.enter="" @keydown.37="" @keydown.left="" @keydown.38="" @keydown.up="" @keydown.39="" @keydown.right="" @keydown.x="" 默认没有@keydown.ctrl事件,可以自定义键盘事件:Vue.directive('on').keyCodes.ctrl=17; ### 2. 属性 #### 2.1 属性绑定和属性缩写 v-bind主要用于属性绑定,如 v-bind:属性名=“” 属性的简写: v-bind:src="" 简写 :src="" (推荐) #### 2.2 class和style属性 绑定class和style属性时比较特殊,语法比较复杂 v-bind:class="" :class="" v-bind:style="" :style="" ## 六、 模板 模板就是{{}},用来进行数据的绑定,显示在页面中 数据绑定的方式: 1.双向绑定 v-model 2.单向绑定 方式1:使用花括号{{}}、{{*}}、{{{}}},可能会出现闪烁的问题,可以使用v-cloak解决 方式2:使用v-text、v-html 注:在vue2.x中已经删除了{{{}}} ## 七、 过滤器 ### 1. 基本用法 用来过滤模型数据,在显示之前进行数据处理和筛选 语法:{{ data | filter1 参数1 参数2 | filter2 参数1 参数2 }} ### 2. 内置过滤器 currency、uppercase、lowercase、capitalize json、debounce limitBy filterBy orderBy 注:在vue2.x中所有内置过滤器已经被删除了 ### 3.自定义过滤器 使用全局方法Vue.filter()注册一个自定义过滤器,接受两个参数:过滤器ID和过滤器函数 #### 3.1 语法 Vue.filter(过滤器名,function(data,参数){ return 处理后数据; }); #### 3.2 双向过滤器 前面的过滤器都是单向的,由数据model--->视图view,即把来自模型的数据在视图中显示之前进行过滤处理 双向过滤器是两个方向,由视图view<--->数据model,即也可以把来自视图的数据在绑定到模型中之前进行过滤处理