浅谈Vue_02

1. 事件处理

v-on:click @click v-on:change @change
v-on:click="fn()"
v-on:click="fn($event)"
v-on:click="fn('params')
v-on:click="fn(msg)" msg为变量

2. 事件修饰符

阻止冒泡 v-on:click.stop="fn()"
阻止默认事件 v-on:click.prevent="fn"
阻止冒泡阻止默认事件 v-on:click.stop.prevent="fn"
.capture 添加事件监听器时使用事件捕获模式 即元素自身触发的事件先在此处理,然后才交由内部元素进行处理
.self 只当在 event.target 是当前元素自身时触发处理函数 即事件不是从内部元素触发的
.once 点击事件将只会触发一次
.passive 不要把 .passive 和 .prevent 一起使用,因为 .prevent 将会被忽略,同时浏览器可能会向你展示一个警告。

3. 按键修饰符

以前如果有一个表单输入框,当你输入之后敲回车想要打印值

<input onchange="fn(event)" id="name" />
if (event.keyCode === 13) {name.value}

vue

<input @change.enter="fn()" id="name" />
.tab
.delete
.esc
.space
.up
.down
.left
.right

4. 表单输入绑定

v-model

唯一特殊的就是 checkbox
如果初始值为 数组,则表示多选框
如果初始值为 boolean,则表示真假 --- 购物车中的选择
04表单输入

<input type="text" v-model="username"> {{ username }} <br />
<input type="password" v-model="password"> {{ password }} <br />
<input type="radio" value="男" v-model="sex"> 男
<input type="radio" value="女" v-model="sex"> 女 {{ sex }}<br />
<input type="checkbox" value="篮球" v-model="hobby"> 篮球
<input type="checkbox" value="足球" v-model="hobby"> 足球
<input type="checkbox" value="排球" v-model="hobby"> 排球 {{ hobby }} <br />
<textarea v-model="note"></textarea>{{ note }}<br />
<select v-model="lesson">
<option value="一阶段">一阶段</option>
<option value="二阶段">二阶段</option>
<option value="三阶段">三阶段</option>
</select> {{ lesson }}<br />
<input type="checkbox" v-model="flag"> 已阅读协议<br />
<button @click="getData">记录信息</button>
image.png

表单修饰符
v-model.lazy 失去焦点或者按回车键时才会运算
v-model.trim 得到的值去除两端空格
v-model.number 唤起数字键盘
原生js如果要做正则的校验,失去焦点、键盘弹起时
vue 中 可以使用 侦听属性 或者 计算属性 去做

5. 计算属性

任何复杂的业务逻辑,我们都应当使用计算属性。

在特定条件下,计算属性要优于方法

计算属性具有依赖性,计算属性依赖 data中的初始值,只有当初始值改变的时候,计算属性才会再次计算

计算属性一般书写为一个函数,返回了一个值,这个值具有依赖性,只有依赖的那个值发生改变,他才会重新计算 app.msg = "hello 1902"

也就是说:计算属性是具有依赖性的,它依赖于data中已经存在的数据,通过computed内所定义的函数来对data中的数据做出改变,而且只有当data中的那个数据发生变化时,computed才会重新计算。

原始数据: {{ msg }} <br />
计算属性的值: {{ computedMsg }} - {{ computedMsg }} -{{ computedMsg }} <br />
方法实现: {{ reversemsgfn() }} - {{ reversemsgfn() }}- {{ reversemsgfn() }}

computed: { // 计算属性 ,计算属性可以依据data中的初始数据转换而来,可以像data中的数据一样使用,一般为函数,返回一个值
computedMsg () {
    console.log('computed') // 执行一次
        return this.msg.split('').reverse().join('')
    }
},
methods: {
    reversemsgfn () {
        console.log('methods') // 执行3次
        return this.msg.split('').reverse().join('')
    }
}

6. 方法methods

methods也可以改变数据,是通过类似于click的方式改变数据,但是要在data中申明这个数据,否则页面获取不到

7. 侦听属性(监听属性)

侦听属性只监听数据变化,不会对页面产生渲染,渲染效果主要靠data, 在特定条件下,计算属性要优于侦听属性

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>方法</title>
</head>
<body>
  <div id="app">
    <input type="text" v-model="firstname">
    <input type="text" v-model="lastname">
    {{ fullname }}
  </div>
</body>
<script src="vue.js"></script>
<script>
  new Vue({
    el: '#app',
    data: {
      firstname: 'wu',
      lastname: 'daxun',
      fullname: 'wu daxun'
    },
    watch: { // 侦听属性
      firstname (newval, oldval) {
        this.fullname = newval + this.lastname
      },
      lastname (newval, oldval) {
        this.fullname = this.firstname + newval 
      }
    }
  })
</script>
</html>

8. vue的生命周期函数

image.png

beforeCreate:开始初始化 vue实例的挂载元素el和数据对象data都为undefined
created:初始化完成 vue实例的数据对象data有了,el还没有,可以进行computed.watch监听之后询问是否有el或template
beforeMount:vue实例的el和data都初始化了,但还是虚拟的dom节点
mounted:vue实例挂载完成,data渲染完成
beforeUpdate:data发生变化时执行
updated:发生变化的data,重新渲染到dom元素上之后
beforeDestroy:销毁前 vm.$destroy();
destroyed:销毁完成 vue实例解除了事件监听以及和dom的双向绑定(无响应了),但DOM节点依旧存在

用的最多的还是mounted>created>updata>destoryed

9. axios

必须得安装之后才能使用 cnpm i axios
axios.get(url).then(res => {console.log(res.data)})
axios.post(url, {}).then(res => {console.log(res.data)})

  new Vue({
    el: '#app',
    mounted () {
      axios.get('https://www.daxunxun.com/banner').then(res => {
        console.log(res.data)
      })
      axios.post('https://www.daxunxun.com/users/login', {
        username:'17777777777',
        password: '1234567'
      }).then(res => {
        console.log(res.data)
      })
    }
  })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • 主要还是自己看的,所有内容来自官方文档。 介绍 Vue.js 是什么 Vue (读音 /vjuː/,类似于 vie...
    Leonzai阅读 3,324评论 0 25
  • 1. Vue 实例 1.1 创建一个Vue实例 一个 Vue 应用由一个通过 new Vue 创建的根 Vue 实...
    王童孟阅读 1,013评论 0 2
  • vue概述 在官方文档中,有一句话对Vue的定位说的很明确:Vue.js 的核心是一个允许采用简洁的模板语法来声明...
    li4065阅读 7,185评论 0 25
  • 引用 vue.js脚本地址如下: 基础 数据与方法当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了...
    oo高学吟阅读 316评论 0 0
  • Most of the time my friends consider me a nice person who...
    谢伟Alex阅读 532评论 2 1