From 20d842327b0c2ddd021d863837a541b0100e86d0 Mon Sep 17 00:00:00 2001 From: hcj <2622428319@qq.com> Date: Mon, 31 May 2021 17:39:54 +0800 Subject: [PATCH] 2021.5.31 --- ...21.5.25-\345\210\235\350\257\206Vue.js.md" | 30 +++ ...00\344\272\233\346\214\207\344\273\244.md" | 144 ++++++++++++++ .../2021.5.27.md" | 73 +++++++ ...37\345\221\275\345\221\250\346\234\237.md" | 65 +++++++ .../2021.5.28.md" | 46 +++++ ...14\344\276\246\345\220\254\345\231\250.md" | 116 +++++++++++ .../2021.5.30.md" | 86 +++++++++ .../2021.5.31.md" | 181 ++++++++++++++++++ .../shopping.html" | 119 ++++++++++++ .../vue.html" | 59 ++++++ 10 files changed, 919 insertions(+) create mode 100644 "\351\273\204\345\255\230\346\235\260/2021.5.25-\345\210\235\350\257\206Vue.js.md" create mode 100644 "\351\273\204\345\255\230\346\235\260/2021.5.26-\345\205\263\344\272\216Vue\347\232\204\344\270\200\344\272\233\346\214\207\344\273\244.md" create mode 100644 "\351\273\204\345\255\230\346\235\260/2021.5.27.md" create mode 100644 "\351\273\204\345\255\230\346\235\260/2021.5.28-Vue\345\256\236\344\276\213\347\232\204\347\224\237\345\221\275\345\221\250\346\234\237.md" create mode 100644 "\351\273\204\345\255\230\346\235\260/2021.5.28.md" create mode 100644 "\351\273\204\345\255\230\346\235\260/2021.5.29-Vue\346\250\241\346\235\277\350\257\255\346\263\225\343\200\201\350\256\241\347\256\227\346\234\272\345\261\236\346\200\247\345\222\214\344\276\246\345\220\254\345\231\250.md" create mode 100644 "\351\273\204\345\255\230\346\235\260/2021.5.30.md" create mode 100644 "\351\273\204\345\255\230\346\235\260/2021.5.31.md" create mode 100644 "\351\273\204\345\255\230\346\235\260/shopping.html" create mode 100644 "\351\273\204\345\255\230\346\235\260/vue.html" diff --git "a/\351\273\204\345\255\230\346\235\260/2021.5.25-\345\210\235\350\257\206Vue.js.md" "b/\351\273\204\345\255\230\346\235\260/2021.5.25-\345\210\235\350\257\206Vue.js.md" new file mode 100644 index 0000000..644dd3c --- /dev/null +++ "b/\351\273\204\345\255\230\346\235\260/2021.5.25-\345\210\235\350\257\206Vue.js.md" @@ -0,0 +1,30 @@ +# 2021.5.25 + +## 初识Vue.js + +在Vue.js的官网介绍中,我看到说Vue.js是一个构建用户界面的渐进式框架;然后我就好奇去查找了一下什么是渐进式框架,大概意思就是说你使用vue框架的时候你可以只是用我的一部分,而不是跟其他框架一样如果使用了我的一部分,那么你就得使用我全部的东西,这就是渐进式框架,这也是vue与其他框架的区别。 + + +## 我的第一个Vue应用 + +``` +// 先建立一个html文件,然后引入vue的包,你也可以下载下来本地引入 + +
+

{{ msg }}

+
+ +// 让我们使用vue显示一个 'Hello Word!' + + +``` +让我们运行一下 + +Hell Word! diff --git "a/\351\273\204\345\255\230\346\235\260/2021.5.26-\345\205\263\344\272\216Vue\347\232\204\344\270\200\344\272\233\346\214\207\344\273\244.md" "b/\351\273\204\345\255\230\346\235\260/2021.5.26-\345\205\263\344\272\216Vue\347\232\204\344\270\200\344\272\233\346\214\207\344\273\244.md" new file mode 100644 index 0000000..275ff58 --- /dev/null +++ "b/\351\273\204\345\255\230\346\235\260/2021.5.26-\345\205\263\344\272\216Vue\347\232\204\344\270\200\344\272\233\346\214\207\344\273\244.md" @@ -0,0 +1,144 @@ +# 2021.5.26 + +## 指令 + +#### 1. 声明式渲染 '{{}}' (基础的渲染,跟我们在node.js中的模板引擎用的没啥区别) +``` +
+

{{ msg }}

+
+ + + + +输出: Hello World! +``` + +#### 2. v-for +``` +
+ +
+ + + +输出: 菠萝 桃子 荔枝 +``` +#### 3. v-if +``` +
+

这里显示东西!

+
+ + + + +输出:设置属性值为 true/false 设置显示或者不显示 +``` + +#### 4. v-model 双向绑定 响应式 +``` +
+ +

{{ name }}

+
+ + + +输出: xxx + +当你在输入框中输入什么下面的h1标签显示的就是什么,这就是双向绑定 +``` +#### + +#### 5. v-bind 数据绑定 +``` +
+ 鼠标停留几秒看看 +
+ + +``` + + +## 组件 + +组件可以让你创建一个新的标签,然后渲染好一些数据,他可以被反复的复用,非常的方便。让我们来建一个新的标签吧。 + +``` +
+ + +
+
+ + + + +``` +注: props属性值的命名方式: 1.全部小写 2.驼峰命名法 因为在html标签中不区分大小写,所以你在使用驼峰命名法绑定数据的时候需要使用一个短 - 来连接大写字母 diff --git "a/\351\273\204\345\255\230\346\235\260/2021.5.27.md" "b/\351\273\204\345\255\230\346\235\260/2021.5.27.md" new file mode 100644 index 0000000..fe2a922 --- /dev/null +++ "b/\351\273\204\345\255\230\346\235\260/2021.5.27.md" @@ -0,0 +1,73 @@ +# 2021.5.27 + + +## vue实例 +``` +
+

{{ msg }}

+
+ + +``` +``` +这里我们定义的app就是一个vue实例,在实例中可以定义选项,这里就出现两个 + +el选项:用于指定在哪个dom元素挂载vue实例 +data选项:用于存在数据库,一些实例中用到的数据都可以在里声明,它的作用域是这一整个实例 +``` + +## v-bind 与 v-on + +1.v-bind:用于数据的绑定,绑定的数据可以是各种的 + +如: +``` +
+ // 我们使用了span标签的特性使用数据绑定实现给title设置一些值,就可以使用到v-bind来实现 + 鼠标悬停几秒看看 +
+ + + + +``` + +2.v-on:用于监听dom元素上的一些事件 + +如点击事件,这里使用了单击实现实现了标签的显示于隐藏: +``` +
+

这里显示文本

+ +
+ + + + +``` +methods选项:用于存放定义的函数与方法方便复用,methods中的this表示当前实例本身 \ No newline at end of file diff --git "a/\351\273\204\345\255\230\346\235\260/2021.5.28-Vue\345\256\236\344\276\213\347\232\204\347\224\237\345\221\275\345\221\250\346\234\237.md" "b/\351\273\204\345\255\230\346\235\260/2021.5.28-Vue\345\256\236\344\276\213\347\232\204\347\224\237\345\221\275\345\221\250\346\234\237.md" new file mode 100644 index 0000000..e87bb27 --- /dev/null +++ "b/\351\273\204\345\255\230\346\235\260/2021.5.28-Vue\345\256\236\344\276\213\347\232\204\347\224\237\345\221\275\345\221\250\346\234\237.md" @@ -0,0 +1,65 @@ +# 2021.5.28 + +## Vue实例的生命周期 + +生命周期可以是根实例也可以是组件 + +``` +
+ +

{{ msg }}

+
+ + +``` + diff --git "a/\351\273\204\345\255\230\346\235\260/2021.5.28.md" "b/\351\273\204\345\255\230\346\235\260/2021.5.28.md" new file mode 100644 index 0000000..e3f1704 --- /dev/null +++ "b/\351\273\204\345\255\230\346\235\260/2021.5.28.md" @@ -0,0 +1,46 @@ +# 2021.5.28 + + + +## computed 计算机属性 + +computed属性与methods属性其实差不多,区别就在于computed属性有缓存而methods没有缓存,而且computed属性不是响应式的,而methods属性是响应式的 + +``` +
+ 姓名:{{ fullName() }} +
+ 当时的时间:{{ now }} +
+ + + + + +``` +输出: +``` +姓名:黄某某 +当时的时间:'这里是当前时间'(时间戳) +``` + +### computed 与 methods +我们这时候改变一下值,app.firstName = '林',你会发现页面上的姓名改变了但是当前时间并没有变化,你应该会好奇,为什么姓名都改变了,可是为什么当前时间没有改变,不是我返回的是当前时间吗?这是因为computed方法并不是响应式的而methods方法是响应式的它会随着值得改变响应到页面上,而computed方法不是响应式的,所以并不会响应到页面上。但是你又好奇当前的时间不是一直在变吗,为什么它也没有变化。如果你刷新一下,你会发现当前时间它变化了,这又是为什么呢。那是因为computed方法存在着缓存机制,这个缓存会保存你页面当时响应时computed中的数据,不管你之后响应了多少次,如果computed方法中的值没有做出改变的话,它就会一直是当时响应时的数据,只有你改变了computed方法中的值它才会做出改变,这也是为什么刷新了页面它就会变的原因。这些就是computed与methods方法的区别,它们本质上其实是一样的,都是用于保存一些方法或函数,使用computed/methods取决去你需不需要缓存。 \ No newline at end of file diff --git "a/\351\273\204\345\255\230\346\235\260/2021.5.29-Vue\346\250\241\346\235\277\350\257\255\346\263\225\343\200\201\350\256\241\347\256\227\346\234\272\345\261\236\346\200\247\345\222\214\344\276\246\345\220\254\345\231\250.md" "b/\351\273\204\345\255\230\346\235\260/2021.5.29-Vue\346\250\241\346\235\277\350\257\255\346\263\225\343\200\201\350\256\241\347\256\227\346\234\272\345\261\236\346\200\247\345\222\214\344\276\246\345\220\254\345\231\250.md" new file mode 100644 index 0000000..bf168f1 --- /dev/null +++ "b/\351\273\204\345\255\230\346\235\260/2021.5.29-Vue\346\250\241\346\235\277\350\257\255\346\263\225\343\200\201\350\256\241\347\256\227\346\234\272\345\261\236\346\200\247\345\222\214\344\276\246\345\220\254\345\231\250.md" @@ -0,0 +1,116 @@ +# 2021.5.29 + + +## 模板语法 + +1. 文本插值 “Mustache” 语法 (双大括号) +``` +
+

{{ msg }}

+
+ + + + +``` +2. 原始HTML v-html +使用 v-html 进行插入html,一般使用组件 +``` +
+

{{ rawHtml }}

+

+
+ + + + + + +输出: + 某某某 +

某某某

+``` +3. 绑定参数与动态参数 +``` +
+ 这是一个带有参数的a链接 + + // 这里的[paramattribute]其实是用了数组的方式进行赋值,这种方式可以进行多属性的绑定来实现动态参数,paramattribute其实就行data中定义的属性 + 这是一个带有动态参数的a链接 +
+ + + +``` + +## attribute property 区别 ++ property是DOM中的属性,是JavaScript里的对象; ++ attribute是HTML标签上的特性,它的值只能够是字符串; + +其实property包含了attribute,如id、claass、title等标签属性就是attribute,在你设置这些属性的值得时候它会自动加入到dom中转换成对应的属性,所以说atrribute是property的子集。 + +## 计算机属性 + +计算机属性是依赖式响应进行缓存,就是说他不会随着页面的重新渲染而改变,它会一直渲染第一次页面的渲染时的值,知道当计算机属性中的值受到了改动,那么他才会出现响应从而重新渲染 +``` +
+ 姓名:{{ fullName() }} +
+ 当时的时间:{{ now }} +
+ + + +``` +1. computed 与 methods 的区别 + +我们这时候改变一下值,app.firstName = '林',你会发现页面上的姓名改变了但是当前时间并没有变化,你应该会好奇,为什么姓名都改变了,可是为什么当前时间没有改变,不是我返回的是当前时间吗?这是因为computed方法并不是响应式的而methods方法是响应式的它会随着值得改变响应到页面上,而computed方法不是响应式的,所以并不会响应到页面上。但是你又好奇当前的时间不是一直在变吗,为什么它也没有变化。如果你刷新一下,你会发现当前时间它变化了,这又是为什么呢。那是因为computed方法存在着缓存机制,这个缓存会保存你页面当时响应时computed中的数据,不管你之后响应了多少次,如果computed方法中的值没有做出改变的话,它就会一直是当时响应时的数据,只有你改变了computed方法中的值它才会做出改变,这也是为什么刷新了页面它就会变的原因。这些就是computed与methods方法的区别,它们本质上其实是一样的,都是用于保存一些方法或函数,使用computed/methods取决去你需不需要缓存。 + +2. computed属性 与 watch属性 +watch可以监听你想要的值,只要监听的这个值做出改变,那么就会执行这个属性并作出一些事情,但是computed属性原本就是你所需要的值做出改变那么他就会重新计算,所以计算机属性也满足这个特性,而且计算机属性还有缓存机制,更利于数据的渲染速度。 \ No newline at end of file diff --git "a/\351\273\204\345\255\230\346\235\260/2021.5.30.md" "b/\351\273\204\345\255\230\346\235\260/2021.5.30.md" new file mode 100644 index 0000000..3f96607 --- /dev/null +++ "b/\351\273\204\345\255\230\346\235\260/2021.5.30.md" @@ -0,0 +1,86 @@ +# 2021.5.30 + + +## 绑定class的几种方式 + +1. 对象语法 + +因为v-bind绑定数据的值是字符串的就好了,所以我们可以使用对象的设置来实现动态的切换class,如: +``` +
+
+
+ + + +结果: +
+``` +判断class是否存在,根据值得真假来判断是否需要这个class +``` +:class="{class名:变量名}" + +data{ +变量名:false/true + +} +``` + +2. 数组语法 +需要应用到多个class的时候可以使用,class之间用逗号隔开,如: +``` +
+
+
+ + + +结果: +
+``` + +## 绑定style的方式 + +也是可以使用对象与数组两种方式,一般直接使用对象的方式 + +``` +
+
+
+ + + +结果: +
+``` +绑定style样式跟写样式差不多: +``` +:style="{css属性:变量名}" + +data{ +变量名:设置的样式值 +} +``` \ No newline at end of file diff --git "a/\351\273\204\345\255\230\346\235\260/2021.5.31.md" "b/\351\273\204\345\255\230\346\235\260/2021.5.31.md" new file mode 100644 index 0000000..4bed9f2 --- /dev/null +++ "b/\351\273\204\345\255\230\346\235\260/2021.5.31.md" @@ -0,0 +1,181 @@ +# 2021.5.31 + +## 内置指令 + ++ v-cloak + +渲染页面时你会看到 Mustache语法一闪而过,那是因为数据在初始化,如果你不想看到这个Mustache语法的话,这时候你就可以使用v-cloak指令解决这个问题,它需要配合css样式来使用。 + +v-cloak: +``` +

这里有一段文本

+``` +css: +``` +[v-cloak]{ + display:once; +} +``` +你设置完指令后,你在重新刷新下页面,你会发现页面并不会出现Mustache语法了,而是一闪而过渲染好的页面。这就是使用v-cloak解决初始化慢的问题。 + ++ v-once + +它只会渲染一次页面但会渲染父节点下的所有子节点(元素/组件),并且在之后你改变值后它并不会重新响应页面,你可以把它当做一次性使用。 +``` +
+ {{ message }} +
+ {{ message }} +
+
+ + +``` +你打开页面后,你在把message的值改变你会发现它并不会出现响应式的反应,这就是v-once指令的效果。 + ++ v-if v-show + +这两个指令的功能其实效果差不多,都是在条件为真的时候显示,条件为假时隐藏,只不过v-if才是真正的条件渲染指令,因为v-if只有在条件为真的时候它才会渲染页面,而v-show是不管条件是否真假它都已经渲染好了dom只不过它在条件为假的时候隐藏了起来,但是dom还在,而v-if在条件为假时它并不会渲染dom并且不会存在,直接就没有这个dom。 + +v-if: +``` +

这里有一段文本

+``` +v-show: +``` +

这里有一段文本

+``` + +template标签 + +tmeplate是一个vue.js内置的的标签,当你想使用一些条件渲染或列表渲染时,你可以使用它,它并不会出现在渲染好的页面上,而只会渲染标签内的所有元素。 +``` + +``` + +key属性 + +key属性也是vue.js内置的属性,使用它可以让你决定一个标签是否被复用,并且key的值必须是唯一的。 + +无key属性时: +``` +
+ + +
+ + + +``` +打开页面,但你把isOk的值改为false时,你会发现你在text文本中输入的值,并没有清空,而lable的值已经从用户名变成了邮箱,那是因为标签被复用了,因为vue在渲染元素时,出于效率的考虑,会尽可能地复用已有的元素,并不会重新渲染。 + +有key属性时: +``` +
+ + +
+ + + +``` +当你添加key后在去改变isOk的值,你会发现标签并不会被复用了,text中的值被情空了。lable还是被复用是因为没有设置key。key就像是标签内的id一样。 + ++ v-for + +v-for可以循环数组或对象。当你需要重复做一件事情并且做很多的时候,你就会想到用for循环来重复做同一件事,vue.js中也提供了一个指令 v-for,当你想要渲染许多相同的标签的时候你就可以用到这个指令来循环他们进行渲染提高效率。 + +``` +
+ +
+ + + +``` +当你使用v-for循环对象的时候可以有三个参数:1.值 2.键名 2.索引。这个顺序是根据他们的重要来排的。 +当你循环组数的时候就只有两个参数了,因为数组只有值与索引,所以在循环数组的时候只有两个参数选择:1.值 2.索引 +``` +
+ +
+ + + +``` diff --git "a/\351\273\204\345\255\230\346\235\260/shopping.html" "b/\351\273\204\345\255\230\346\235\260/shopping.html" new file mode 100644 index 0000000..1610330 --- /dev/null +++ "b/\351\273\204\345\255\230\346\235\260/shopping.html" @@ -0,0 +1,119 @@ + + + + + + + 购物车列表 + + + + +
+ + + + + + + + + + + + + + + + + + +
    商品名称商品单价购买数量操  作
  {{ index + 1 }} {{ item.name }}{{ item.price }} + + {{ item.count }} + + 选中
+
全选
+
总价: {{totalPrice}}
+ +
+ + + + + + \ No newline at end of file diff --git "a/\351\273\204\345\255\230\346\235\260/vue.html" "b/\351\273\204\345\255\230\346\235\260/vue.html" new file mode 100644 index 0000000..5a552cd --- /dev/null +++ "b/\351\273\204\345\255\230\346\235\260/vue.html" @@ -0,0 +1,59 @@ + + + + + + Document + + +
+ +
+ + + + + \ No newline at end of file -- Gitee