当前位置: 首页 > news >正文

课程1-10笔记

1.vue课程简介

1.VUE是:一套用于构建用户界面的渐进式JavaScript框架

渐进式:Vue 可以自底向上逐层的应用

(简单应用:只需要一个轻量小巧的核心库

复杂应用:可以引入各式各样的Vue插件)

vue-cli脚手架,专门做工程化开发

vue-router用于在Vue中实现前端路由

vuex可以保管复杂应用的数据

element-ui是一个组件库

2.vue简介

2.Vue的特点:

(1)采用组件化模式,提高代码复用率,切让代码更好维护

在Vue里面,一个.vue文件就包含了HTML、CSS、javascript三种类型文件的交互

一个Vue文件就是一个组件,可以通过引用一个Vue文件,把html,css\javascript都引用过去

(2)声明式代码,让编码人员无需直接操作DOM,提高开发率

(命令式编码:一步一步来,少了任何一步都不行,就是JS课程里面学的那样,每一步都不能少)

{{p.id}}-{{p.name}} - {{p.age}}

3.使用虚拟DOM+优秀的Diff 算法,尽量复用DOM节点

下面是用新修改(增加了的东西加原来存在的东西)的东西全部替换旧的东西,增加了没有必要的替换(有的东西原来就存在,结果删了又重新都写了一遍)

Vue实现,依旧存在的东西依然保持不变,只增加新增的东西,提高了复用率(在JS课程里面也讲过新增部分和替换全部旧的东西的课程)

vue的实现多了的东西就是虚拟DOM,然后再把虚拟DOM变成真实DOM

 

3.VUE使用指南

在公司了工作,需要使用脚手架,叫做Vue CLI,不会再使用低级的东西

在Vue.js官网有使用指南

在”学习“里面有两个重要的东西”教程“、”API“

4.搭建Vue开发环境

不推荐新手使用脚手架 VUE CLI

为了使得在线资源加载的更快有时候会做CDN的加速

 

5.Hello小案例

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> 初识Vue </title> <!--引入Vue--> <!--如果引入Vue,全局就多了Vue的构造函数--> <script type="text/javascript" src="./js/vue.js"></script> <style> </style> </head> <body> <!--准备一个容器--> <div id="root"> <h1>Hello,{{name}}</h1><!--两组花括号为分隔符--> </div> <!--关闭提示--> <script type="text/javascript"> Vue.config.productionTip=false;//阻止Vue在启动时生成生产提示 //创建Vue实例 const x=new Vue({ el:'#root', //el用于指定当前Vue实例为哪个容器服务,值通常为CSS选择器字符串 //让它选择器让它自己找,这个写法更经典 /*el:document.getElementById('root')//亲自找到一个元素,给它配置到el里面*/ data:{ //data中用于存储数据,数据供el所指定的容器去使用 name:'Linying' } }) </script> </body> </html>

容器的作用是提供模板和让vue知道值往哪里放

6.hello案例解析(实例和容器之间只能一对一)

(多对一)一个数据只能给一个空里面填

(一对多)

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> 初识Vue </title> <!--引入Vue--> <!--如果引入Vue,全局就多了Vue的构造函数--> <script type="text/javascript" src="./js/vue.js"></script> <style> </style> </head> <body> <!--准备一个容器--> <div id="root"> <h1>Hello,{{name}},{{address}}</h1><!--两组花括号为分隔符--> </div> <!--关闭提示--> <script type="text/javascript"> Vue.config.productionTip=false;//阻止Vue在启动时生成生产提示 //创建Vue实例 const x=new Vue({ el:'#root', //el用于指定当前Vue实例为哪个容器服务,值通常为CSS选择器字符串 //让它选择器让它自己找,这个写法更经典 /*el:document.getElementById('root')//亲自找到一个元素,给它配置到el里面*/ data:{ //data中用于存储数据,数据供el所指定的容器去使用 name:'Linying' } }) new Vue({ el:'#root', //el用于指定当前Vue实例为哪个容器服务,值通常为CSS选择器字符串 //让它选择器让它自己找,这个写法更经典 /*el:document.getElementById('root')//亲自找到一个元素,给它配置到el里面*/ data:{ //data中用于存储数据,数据供el所指定的容器去使用 address:'Yabing' } }) </script> </body> </html>

只能是一对一的关系

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> 初识Vue </title> <!--引入Vue--> <!--如果引入Vue,全局就多了Vue的构造函数--> <script type="text/javascript" src="./js/vue.js"></script> <style> </style> </head> <body> <!--准备一个容器--> <div id="root"> <h1>Hello,{{name}},{{address}}</h1><!--两组花括号为分隔符--> </div> <div id="root2"> <h1>Hello,{{name}},{{address}}</h1><!--两组花括号为分隔符--> </div> <!--关闭提示--> <script type="text/javascript"> Vue.config.productionTip=false;//阻止Vue在启动时生成生产提示 //创建Vue实例 const x=new Vue({ el:'#root', //el用于指定当前Vue实例为哪个容器服务,值通常为CSS选择器字符串 //让它选择器让它自己找,这个写法更经典 /*el:document.getElementById('root')//亲自找到一个元素,给它配置到el里面*/ data:{ //data中用于存储数据,数据供el所指定的容器去使用 name:'Linying', address:'XinZhou' } }) new Vue({ el:'#root2', //el用于指定当前Vue实例为哪个容器服务,值通常为CSS选择器字符串 //让它选择器让它自己找,这个写法更经典 /*el:document.getElementById('root')//亲自找到一个元素,给它配置到el里面*/ data:{ //data中用于存储数据,数据供el所指定的容器去使用 name:'Yabing', address:'YunCheng' } }) </script> </body> </html>

v-bind:可以简写为:

头标签和尾标签之间夹着的内容就是标签体,红色框里面圈起来的都是标签属性。

标签体中可以用插值语法

 

7.模板语法{{}}

链接大写和当前时间的时间戳

加了:才会当做JS表达式去执行,不加:就是最传统的字符串

如果有两个name的值对应{{name}},那么会以后面的那个为准

解决方法:设计为多级的结构

 

8.数据绑定

v-bind单向数据绑定,v-model双向数据绑定

v-bind最大的特点是数据绑定

只有一个元素有value,v-model才可以工作

普通写法和简写

v-model默认收集的就是value值,所以v-model可以省略value

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> 初识Vue </title> <!--引入Vue--> <!--如果引入Vue,全局就多了Vue的构造函数--> <script type="text/javascript" src="./js/vue.js"></script> <style> </style> </head> <body> <!--准备一个容器--> <div id="root"> <!--<br/>表示换行--> 单项数据绑定:<input type="text" v-bind:value="name"><br/> 双向数据绑定:<input type="text" v-model:value="name"><br/> <h2 v-bind:x="v-bind">你好啊</h2> <!--<h2 v-model:x="v-bind">你好啊</h2> 这个代码是错误的,因为v-model只能应用在表单类元素(输入类元素)上 输入类元素有:input 单选框 多选框 select 多行输入 --> </div> </body> <!--关闭提示--> <script type="text/javascript"> Vue.config.productionTip=false;//阻止Vue在启动时生成生产提示 //创建Vue实例 new Vue({ el:'#root', //el用于指定当前Vue实例为哪个容器服务,值通常为CSS选择器字符串 //让它选择器让它自己找,这个写法更经典 /*el:document.getElementById('root')//亲自找到一个元素,给它配置到el里面*/ data:{ //data中用于存储数据,数据供el所指定的容器去使用 name:'尚硅谷' } }) </script> </html>

9.el和data的两种写法

value实例对象

所有带$符号的是给程序员用的,所有不带$符号的都不是给程序员用的

v是实例,Vue是实例缔造者

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> 初识Vue </title> <!--引入Vue--> <!--如果引入Vue,全局就多了Vue的构造函数--> <script type="text/javascript" src="./js/vue.js"></script> <style> </style> </head> <body> <!--准备一个容器--> <div id="root"> <h1>你好,{{name}}</h1> </div> </body> <!--关闭提示--> <script type="text/javascript"> Vue.config.productionTip=false;//阻止Vue在启动时生成生产提示 //创建Vue实例 const v=new Vue({ el:'#root', data:{ name:'尚硅谷' } }) console.log(v) </script> </html>

总结:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> 初识Vue </title> <!--引入Vue--> <!--如果引入Vue,全局就多了Vue的构造函数--> <script type="text/javascript" src="./js/vue.js"></script> <style> </style> </head> <body> <!--准备一个容器--> <div id="root"> <h1>你好,{{name}}</h1> </div> </body> <!--关闭提示--> <script type="text/javascript"> Vue.config.productionTip=false;//阻止Vue在启动时生成生产提示 //创建Vue实例 const v=new Vue({ /* el:'#root',*/ //data的第一种写法:对象式 data:{ name:'尚硅谷' } //data的第二种写法;函数式 /* data的属性是一个函数,是Vue帮调用的 data:function(){ console.log('@@@',this) //此处的this是Vue实例对象 return{ name:'尚硅谷' } } */ /*简写为: data(){ console.log('@@@',this) //此处的this是Vue实例对象 return{ name:'尚硅谷' } } */ }) //el的两种写法 //不用el,用$也可以指定容器 /*两种方式都可以指定容器,但是第二种灵活一点儿*/ console.log(v) v.$mount('#root')//$mount 挂载 /*setTimeout(()=>{ v.$mount('root') },1000); 意思是等一秒才会执行 */ </script> </html>

 

10.理解MVVM

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> 初识Vue </title> <!--引入Vue--> <!--如果引入Vue,全局就多了Vue的构造函数--> <script type="text/javascript" src="./js/vue.js"></script> <style> </style> </head> <body> <!--准备一个容器--> <div id="root"> <h1>学校名称:{{name}}</h1> <h1>学校地址:{{address}}</h1> </div> </body> <!--关闭提示--> <script type="text/javascript"> Vue.config.productionTip=false//阻止Vue在启动时生成生产提示 //创建Vue实例 new Vue({ el:'#root', data:{ name:'尚硅谷', address:'北京' } }) </script> </html>

出现在Vue原型上的东西它都能用

 

http://www.lryc.cn/news/571478.html

相关文章:

  • Vue3+TypeScript中v-bind()的原理与用法
  • JavaEE->多线程1
  • Python词频统计工具全解析
  • 代码随想录打卡第三十天 动态规划
  • CppCon 2016 学习:The Exception Situation
  • 【wsl】docker
  • Python FastAPI详解
  • 在Docker上安装Mongo及Redis-NOSQL数据库
  • JVM(4)——引用类型
  • CubeMax配置串口通讯
  • 微信小程序:将搜索框和表格封装成组件,页面调用组件
  • Kafka 向 TDengine 写入数据
  • 游戏技能编辑器界面优化设计
  • Java + Spring Boot + MyBatis 枚举变量传递给XML映射文件做判断
  • node.js使用websockify代理VNC代理使用NoVNC进行远程桌面实现方案
  • docker问题排查
  • 【Python系列PyCharm实战】ModuleNotFoundError: No module named ‘sklearn’ 系列Bug解决方案大全
  • 使用Kotlin开发后端服务的核心方法
  • 【大模型:知识库管理】--MinerU本地部署
  • 最新整理【剑侠情缘龙雀修复BGU版】linux服务端带授权后台+详细教程+包进游戏
  • LangSmith 深度解析:构建企业级LLM应用的全生命周期平台
  • 【day51】复习日
  • conda 下载指定 python 版本安装,即 base 环境为指定的python版本
  • Unity Editor代码引用子场景物体,需要激活子场景
  • 【 FastJSON 】解析多层嵌套
  • 希尔脚本简介及常用命令代码整理
  • 20倍光学镜头怎么实现20+20倍数实现
  • Spring @OnApplicationEvent 典型用法
  • MacOS15.5 MySQL8 开启 mysql_native_password
  • 【入门级-基础知识与编程环境:计算机的历史和常见用途】