Vue学习笔记

前言:自己是iOS开发,工作中做底层C开发,,想再拓展下知识面,着手学习Vue,因为之前工作中用过AngularJS,再者自己本身就是移动端的开发,所以学习起来比较简单。

1、公共库以及开发工具下载

(1) VSCode 开发工具 ( 官网下载 )

(2) Vue.js  ( 官网下载开发版本 )

引用方法:<script src="../vue.js"></script>

(3) jquery-3.4.1 ( 官网下载 )

引用方法:<script src="../jquery-3.4.1/jquery-3.4.1.js"></script>

2、Vue视频是在幕客网找的,有需要的可以下载,百度网盘,提取码: 2mff

网盘

3、npm的简单使用

npm简单使用

4、学习Vue的前提:

要知道最根本的html基础,标签,CSS 样式,JQuery,了解 note.js(主要是搭后台服务器环境)

JS(javascript),ES6,webpack(打包工具),

npm(环境配置,依赖库)

Axios (阿贾克斯数据获取)  Vue Router (多页面之间的路由)

Vuex (各个组件之间的数据共享)  异步组件(上线,性能更优)

Stylus (编写前端页面样式)

4、Vue视频项目介绍

章节介绍

3、下面就记录下自己的学习笔记

< 3.1 > 项目初建,后面用到出现过的属性就不一一标明,具体可以参考 Vue中文文档

First Project (Vue)

JQuery 实现上面逻辑

JQuery

上面逻辑实现了(输入框点击提交,在li中新增一个,并清空了输入框的内容),现在增加如下需求(点击 li 对应的某一个值,直接删除)

创建一个 div 标签,并绑定相对应的属性,添加对应的方法

创建div标签

创建Vue实例,实现上面div的方法以及处理对应的属性

Vue实例

视频学完后,自己做一遍以上需求

自做(复习)

总结:11月4日

获取Class属性    var image = document.getElementsByClassName('qqImage');

获取Id属性为    var text = document.getElementById('text');

获取class里的属性  var btn = document.getElementsByTagName('button');

组件绑定方法:v-on:click="clickAction" (简写为: @click="clickAction")

循环遍历list里的内容赋值给item: v-for="item in list" 也可写成    v-for="item of list"

v-bind:content="item"  :  将 ‘item’ 的值赋值给 ‘content’(可以简写为 :content="item" )

注册Vue实例

全局组件与局部组件的创建

实例下新增属性:components , 创建的局部组件进行注册

<template>这是个占位标签,例如循环最外层进行包裹</template>

局部组件methods属性下添加this.$emit("delete",this.index);

相当于发送一个通知,通知名称叫做 ‘delete’,并在li标签中进行监听(li 标签添加@delete="deleteItem")

数组的7个操作方法:

Vue.set(vm.list,1,"liming")  //实例方法替换,下标为1,改为 liming

vm.$set(vm.list,1,"liming")  //对象方法替换,下标为1,改为 liming

//数组的操作方法

      pop:    把数组的最后一项删除掉        //vm.list.shift()

      push:    添加一项                    //vm.list.push("girls")

      shift:  删除数组的第一项            //vm.list.shift()

      unshift: 往数组中的第一项之前添加内容  //vm.list.unshift("Liming")

      splice:  根据某个字符串进行截取       

                    vm.list.splice(1,2) 删除起始下标为1,长度为2的值

                    vm.list.splice(1,2,"liming") 将下标为1,长度为2的两个值替换成 liming

                    vm.list.splice(1,1,"liming") 将下标为1的值替换成 liming

                      vm.list.splice(1,0,"liming") 在下标为1的后面添加一个值

        sort:    数组的排序      //vm.list.sort()    字符串按首字母排序,数字按大小

        reverse: 对数组进行取反      //vm.list.reverse() 倒序排列

< 3.2 > 复习Vue基础,学习Vue的生命周期,阅读官网文档

总结:11月7日

//生命周期函数就是vue实例在某一个时间点会自动执行的函数

            //组件即将创建

            beforeCreate:function(){

                console.log("beforeCreate")

            },

            //组件已经创建

            created:function(){

                console.log("created")

            },

            //组件即将显示

            beforeMount:function(){

                console.log("beforeMount")

            },

            //组件已经显示

            mounted:function(){

                console.log("mounted")

            },

            //组件即将被销毁的时候调用  销毁组件方法: vm.$destroy()

            beforeDestroy:function(){

                console.log("beforeDestroy")

            },

            //组件已经被销毁的时候调用

            destroyed:function(){

                console.log("destroyed")

            },

            //数据即将发生改变

            beforeUpdate:function(){

                console.log("beforeUpdate")

            },

            //数据已经发生改变

            updated:function(){

                console.log("updated")

            }

< 3.3 >  Vue 计算属性,方法,侦听器改变属性值

了解 set 和 get 方法 , Vue样式绑定(class 和 style 样式 绑定)

模版语法

模版语法

计算属性,方法,侦听器改变属性值

计算属性,方法,侦听器

set 和 get 方法

set、get

Vue样式绑定

样式绑定

总结:11月9日

(1)计算属性,方法,侦听器 改变属性值

(2)了解 set 和 get 方法

(3)通过class 和 style 绑定样式

< 3.4 > Vue样式绑定,条件渲染

div标签
Vue实例

总结:11月12日

通过class和style绑定样式

(1)<div :style = "styleObj" @click="clickItem"> hello Vue</div>

(2)<div @click = "clickFunction" :class="[activated]"> hello Vue</div>

Vue的条件渲染,v-if , v-else , v-else-if

v-if  和 v-else 必须一起


< 3.5 > 深入理解Vue组件

is 的用法

is

ref对应的是标签,拿到标签所显示的内容

ref应用

ref对应的是组件, 进行求和操作,子组件向父组件传值

传值

总结:11月18日

(1)is的用法,防止变成同一级

(2)子组件向父组件进行传值

创建子组件,在需要监听的地方注册监听器,名称是change    this.$emit('change')

在div 标签中添加这个监听方法,@change = “sum”  (当监听的值改变时,执行sum 方法)

在Vue实例的 methods 下 添加 sum 方法

(3)ref的应用(结合第二步)

通过 this.$refs.world1.number 拿到 ref为world1 的 number 的内容

父子组件传值复习

父子组件传值

组件参数校验与Props特性

组件参数校验

总结:11月21日

1、视频4-2,复习了ref 的应用,父子组件传值

2、创建局部组件时,在vue实例 components 属性下进行注册

3、:content 和 content 的不同,加冒号代表定义的数字,不加冒号代表定义的字符串

4、this.$emit('change',1,'zhoubin') 后面可以添加参数,接收参数时后面与之对应

5、局部组件属性 template 下定义的是这个局部组件的模版

6、组件校验

type:String(声明类型)

required:true(参数是否必传)

default:‘默认展示’ (如果必传参数没传的话,默认展示的数据)

validator:function(value)  {  return (value.length > 5)  } (校验器校验传入参数的长度大于5)

7、props特性:

(1)父组件传的参数(如content),子组件必须去接收,在 props:[‘content’] 定义

(2)不会将属性显示在dom标签中

8、非props特性:

父组件传的参数(如content),子组件没有接收,会显示在子组件最外层dom标签中


最近公司项目比较忙,好久都没来学习了,把这几天学的知识点记录下

插槽,通过插槽用父组件向子组件传递

插槽

作用域插槽

作用域插槽

v-once的性能优化

v-once

总结:2020-01-15

<1>插槽:可以用 slot = “header” 来标识具体是哪个插槽,在使用的时候,在模版中定义

<slot name="header"> 默认显示的内容 </slot>

<2>作用域插槽:用 template 标签来包裹 ,slot - scope  = "content"  声明子组件的模版内容都放在content 里,具体看作用域插槽的示例

<3> v-once:根据上图示例来看,使用v-once的好处就是不用每次都需要重新去创建,直接从缓存中读取,优化了界面的性能



结语:

目前第四章学习完结,准备开始第五章《Vue中的动画特效》,本文会实时更新,如有问题,多交流沟通。

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