1、创建vue实例

var vm = new Vue({
el: '#example',  //选择元素
data: {a:1}    //基本数据
})

2、模板语法

(一)基本语法

<span>Message: {{ msg }}</span>  //msg双向数据绑定

(二)只有第一次渲染

<span v-once>这个将不会改变: {{ msg }}</span>  //不会双向绑定

(三)自动渲染html代码

<span v-html="rawHtml"></span>  //自动识别内敛样式等

(四)如果是内敛样式要使用双向数据绑定,通常都要加上v-bind

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

(五)在双花括号当中可以使用单行的JavaScript的语法

{{ ok ? 'YES' : 'NO' }}

3、计算属性以及观察方法

(一)基本写法

var vm = new Vue({
computed: {  //计算属性方法名
reversedMessage: function () {  //计算属性的名称
return this.message.slice(0,1)  //计算属性执行的方法
}
},
watch: {   //监听数据变化就执行的方法
message: function (val) {  //message数据变化就执行
this.message = val + ' ' + this.message  //val表示改变的新值
}
}
})

(二)computed的get和set

get就是获取得时候触发,set就是自身改变的时候触发(默认只有get)

computed:{
message: {
get:function(){
return this.test+1  
},
set:function(newValue){
console.log(newValue);  //newValue改变的新值
}
}

4、Class 与 Style 绑定

(一)Class的对象语法(根据数据的布尔值确定是否有这个class)

data: {
isActive: true,
hasError: false
} <div class="static" v-bind:class="{ active: isActive, 'text-danger': hasError }"></div>
data: {    //这样写法更清晰
classObject: {
active: true,
'text-danger': false
}
}
<div v-bind:class="classObject"></div>

(二)Class的数组语法(直接获取这个数组的值的字符串)

data:{
  activeClass:"asd",
  errorClass:"ret"
}
<div v-bind:class="[activeClass, errorClass]"></div>

(三)Class的对象语法和数组语法可以共同使用

<div v-bind:class="[{ active: isActive }, errorClass]"></div>

(四)内联样式的对象语法

data: {
activeColor: 'red',
fontSize: 30
}
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>

(五)内联样式的数组语法

data: {
baseStyles:{
color:"#e4393c"
},
overridingStyles:{
border:"1px solid #ddd"
}
}
<div v-bind:style="[baseStyles, overridingStyles]"></div>

5、条件渲染

(一)基本语法

<h1 v-if="ok==1">1</h1>
<h1 v-else-if="ok==2">2</h1>
<h1 v-else>No</h1>

(二)template,多个元素条件渲染

<template v-if="ok">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</template>

(三)如果没有key,自动复用已存在的标签

<input placeholder="Enter your username" key="user" v-if="loginType === 'username'">  //加上了key就不会自动复用标签里的内容
<input placeholder="Enter your email address" key="email" v-else>

(四)v-show,类似于v-if不过只是简单的修改display的值。并且不能用v-else和不支持template。

<h1 v-show="ok==1">Hello1!</h1>

6、列表渲染

(一)渲染数组语法

data: {
items: [
{ message: 'Foo' },
{ message: 'Bar' }
]
}
<li v-for="item in items">
{{ item.message }}  //单纯的渲染值
</li>
<li v-for="(item, index) in items">
{{ index }} - {{ item.message }}  //渲染建和值
</li>

(二)渲染对象语法

data: {
object: {
firstName: 'John',
lastName: 'Doe',
age: 30
}
} <li v-for="value in object">
{{ value }}  //单纯的渲染值
</li> <li v-for="(value,key,index) in object">
{{index}}:{{ key }}: {{ value }}  //渲染建和值
</li>

(三)渲染时最好加上一个特殊的key值,如果顺序改变方便后续跟踪操作

<div v-for="item in items" :key="item.id"><!-- 内容 --></div>

(四)数组方法

【1】数组本身变异方法

vm.array.push({ message: 'Baz' });  //后面增加一个
vm.array.pop();  //后面删除一个
vm.array.shift();  //前面删除一个
vm.array.unshift({message:'Baz'});  //前面增加一个
vm.array.splice(0,1,{message:'Asb'});  //瑞士军刀,从第几个开始删除多少个,替换成什么
vm.array.sort((a,b)=>a-b);  //根据里面的方法排序
vm.array.reverse();  //颠倒排序

【2】数组新建方法

vm.array.concat(arr1);  //数组拼接
vm.array.join("");  //数组转换成字符串
vm.array.slice(start,end);  //截取一段数组
vm.array.filter(fun);  //根据方法过滤  

(五)重新设置数组

【1】重置设置其中一个值

Vue.set(example1.items, indexOfItem, newValue)
example1.items.splice(indexOfItem, 1, newValue)

【2】重置长度

example1.items.splice(newLength)

【3】对象赋予多个新属性

vm.userProfile = Object.assign({}, vm.userProfile, {
age: 27,
favoriteColor: 'Vue Green'
})

7、事件处理的方法

(一)基本语法

<div id="app">
<button v-on:click="greet">Greet</button>  //事件触发
</div>
var example2 = new Vue({
methods: {
greet: function (event) {  //event是事件处理方法
if (event) {
alert(event.target.tagName)
}
}
}
})

(二)传参数,并且要求event还存在

<button @click="greet('hi',$event)"></button>  //除了传参数还要传个事件$event

(三)事件修饰符

<a v-on:click.stop="doThis"></a>  //阻止单击事件

<form v-on:submit.prevent="onSubmit"></form>  //提交事件不再重载页面

<a v-on:click.stop.prevent="doThat"></a>  //修饰符串联,顺序很重要

<form v-on:submit.prevent></form>  //单纯修饰符

<!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理 -->
<div v-on:click.capture="doThis">...</div>   <!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div v-on:click.self="doThat">...</div>
 <a v-on:click.once="doThis"></a>  //只触发一次

(四)按键修饰符

<!-- 只有在 `keyCode` 是 13 时调用 `vm.submit()` -->
<input v-on:keyup.13="submit"> <!-- 同上 -->
<input v-on:keyup.enter="submit"> <!-- 所有特殊按键 -->
.enter
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right <!-- 系统修饰符 -->
<!-- Alt + C -->
<input @keyup.alt.67="clear"> <!-- Ctrl + Click -->
<div @click.ctrl="doSomething">Do something</div> <!-- exact修饰符 -->
<!-- 即使 Alt 或 Shift 被一同按下时也会触发 -->
<button @click.ctrl="onClick">A</button> <!-- 有且只有 Ctrl 被按下的时候才触发 -->
<button @click.ctrl.exact="onCtrlClick">A</button> <!-- 没有任何系统修饰符被按下的时候才触发 -->
<button @click.exact="onClick">A</button> <!-- 鼠标修饰符 -->
.left
.right
.middle

8、表单输入

(一)基本文本

<input v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>

(二)单选和复选框

<input type="checkbox" id="checkbox" v-model="checked">
<label for="checkbox">{{ checked }}</label> <div id="example-4">
<input type="radio" id="one" value="One" v-model="picked">
<input type="radio" id="two" value="Two" v-model="picked">
<span>Picked: {{ picked }}</span>
</div>

(三)多选时

new Vue({
el: '...',
data: {
selected: []  //多选时绑定数组
}
}) <div id="example-5">
<select v-model="selected">
<option disabled value="">请选择</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
<span>Selected: {{ selected }}</span>
</div>

(四)复选或者单选ture、false命名

<input type="checkbox" v-model="toggle" true-value="yes" false-value="no">  //当选中时yes,没选中no

(五)双向数据绑定value,只需要加上v-bind

<input type="radio" v-model="pick" v-bind:value="a">  //当选中时pick===a

(六)修饰符

<input v-model.lazy="msg" >  //输入完才改变
<input v-model.number="age" type="number">  //用户输入内容自己转为数字
<input v-model.trim="msg">  //去空格

重新学习vue基础的更多相关文章

  1. 前端Vue基础学习

    Vue基础 对与vue的简洁明了的干货分享,适合小白学习观看,如果有笔误或者想了解更多的,请给笔者留言,后续会继续分享,从零开始的vue相关经验 1.创建vue实例 <div id=" ...

  2. Vue – 基础学习(4):事件修饰符

    Vue – 基础学习(3):事件修饰符

  3. Vue – 基础学习(3):$forceUpdate()和$nextTick()的区别

    Vue – 基础学习(3):$forceUpdate()和$nextTick()的区别

  4. Vue – 基础学习(2):组件间 通信及参数传递

    Vue – 基础学习(2):组件间 通信及参数传递

  5. Vue – 基础学习(1):对生命周期和钩子函的理解

    一.简介 先贴一下官网对生命周期/钩子函数的说明(先贴为敬):所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周 ...

  6. Vue学习笔记-Vue基础入门

    此篇文章是本人在学习Vue是做的部分笔记的一个整理,内容不是很全面,希望能对阅读文章的同学有点帮助. 什么是Vue? Vue.js (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式 ...

  7. vue 基础核心学习

    <html> <body> <div id="app"> {{ message }} </div> <div id=" ...

  8. Vue 基础指令学习

    学习Vue的一些总结,第一次写博客,文笔实在是很差 不过我会不断写的. <template> <!--只能有一个根节点 --> <div> <pre> ...

  9. Blazor和Vue对比学习(基础1.1):组件结构

    难度:★ 简单说一说: 1.Vue和Blazor都遵循单文件结果,即HTML(视图模板).CSS(样式).JS/C#(代码逻辑)写在一个文件里,Vue的文件后缀为.vue,Blazor的文件后缀为.r ...

随机推荐

  1. 培训补坑(day10:双指针扫描+矩阵快速幂)

    这是一个神奇的课题,其实我觉得用一个词来形容这个算法挺合适的:暴力. 是啊,就是循环+暴力.没什么难的... 先来看一道裸题. 那么对于这道题,显然我们的暴力算法就是枚举区间的左右端点,然后通过前缀和 ...

  2. python用户登录,密码错误3次则锁定

    需求: 1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 实现思路: 1.判断用户是否在黑名单,如果在黑名单提示账号锁定. 2.判断用户是否存在,如果不存在提示账号不存在. 3.判断 ...

  3. ios 里如何处理四舍五入的问题

    http://blog.sina.com.cn/s/blog_a2774bb10101293j.html 今天朋友问我一个问题,就是如何只舍不入.比如 float price = 0.126,怎么样才 ...

  4. POJ3466(01背包变形)

    Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) ...

  5. 【反演复习计划】【bzoj4407】于神之怒加强版

    #include<bits/stdc++.h> #define N 5000010 #define yql 1000000007 using namespace std; typedef ...

  6. 【反演复习计划】【bzoj3994】约数个数和

    首先要用数学归纳证明一个结论,不过因为我实在是懒得打公式了... 先发代码吧. #include<bits/stdc++.h> #define N 50005 using namespac ...

  7. c++文件流写入到execl中

    #include <iostream> #include <fstream> #include <string> using namespace std; int ...

  8. 使用Windows下的git工具往github上传代码 踩坑记录

    使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己 ...

  9. Codeforces 1023 C.Bracket Subsequence-STL(vector) (Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Fi)

    C. Bracket Subsequence ... 代码: 1 //C 2 #include<iostream> 3 #include<cstdio> 4 #include& ...

  10. 如何在Android Studio中创建jniLib和asset文件夹 2

    1.创建asset文件夹 如图进行操作 2.创建jniLib文件夹 —打开app下面的gradle文件(不是project的gradle) —在gradle文件的Android标签里面添加 sourc ...