首页 > 其他分享 >Vue 2x 系列之(二十)一些注意点

Vue 2x 系列之(二十)一些注意点

时间:2024-02-29 19:44:04浏览次数:26  
标签:返回 arr Vue 函数 二十 元素 2x 数组

一些注意点

vue基础

vue-cli:工程化开发

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

vuex:应用足够复杂时,用于保管数据

element-ui

vue3

Angular ==》 React ==》 Vue

生命周期函数中的this都是vm

开发中自行向vm身上追加属性时【场景:比如methods中要访问mounted钩子中的变量】,避免追加敏感名称命名的属性,比如id、key等等

一般不会直接调用vm.$destroy(),通常是他杀,路由中切走了,对应的组件就销毁掉了

定时器如果不手动关的话,只要页面还在,定时器就还在执行

1. el与data的两种写法

data与el的2种写法
		1.el有2种写法
					(1).new Vue时候配置el属性。
					(2).先创建Vue实例,随后再通过vm.$mount('#root')指定el的值。【灵活性更强】
						const vm = new Vue({
                              el: document.getElementById("root"),
                              data(){
                                  return{
                                      name: "尚硅谷",
                                      href: "http://www.baidu.com",
                                      nihoa:"kkk"
                              }
                              }
                          })
                          vm.$mount('#root')
					
		2.data有2种写法
					(1).对象式,如下
						new Vue({
                              el: document.getElementById("root"),
                              data: {
                                  name: "尚硅谷",
                                  href: "http://www.baidu.com",
                                  nihoa:"kkk"
                              }
                          })
					(2).函数式
						new Vue({
                              el: document.getElementById("root"),
                              data: function(){
                                  return{
                                      name: "尚硅谷",
                                      href: "http://www.baidu.com",
                                      nihoa:"kkk"
                              }
                              }
                          })
                          还可以进一步简写为【这是因为在对象里面写方法可以进行简写】
                          new Vue({
                              el: document.getElementById("root"),
                              data(){
                                  return{
                                      name: "尚硅谷",
                                      href: "http://www.baidu.com",
                                      nihoa:"kkk"
                              }
                              }
                          })
					如何选择:目前哪种写法都可以,以后学习到组件时,data必须使用函数式,否则会报错。
		3.一个重要的原则:
					由Vue管理的函数,比如这里的data,一定不要写箭头函数,一旦写了箭头函数,this就不再是Vue实例了,而是Window实例【箭头函数没有自己的this,往外找就找到了全局的window】。

实例缔造者的原型对象上

vm【Vue实例】===》Vue【实例缔造者】===》再往上就是原型对象

2. @XXX与简单语句

@XXX指的是事件绑定中的事件名,比如click、scroll、wheel等

正常来说,@click会直接跟一个回调函数的,比如@click='showInfo()',但是,如果回调函数的内容特别简单,只有一句话,可以直接将这句话写到@click中,就是说,@click也是可以写语句的,如果回调函数内容比较多,各语句之间用';'分隔,但不建议这么做

3. 哪些函数属于Vue管理的函数?

总的来说,只要是Vue实例配置项下的函数【methods、computed、watch等】以及直接调用vm设置的函数【vm.$watch()等】都属于Vue管理的函数

模板字符串

一些常用的API

Math.random():生成一个0到1之间的数,包含0但不包含1

Math.random()*3:生成一个0到3之间的数,包含0但不包含3

Math.floor():向下取整

str1.indexOf(str2):str1中是否包含子串str2,不包含返回-1,包含返回索引值

str1.search(str2):str1中是否包含子串str2,不包含返回-1,包含返回索引值

arr.shift():移除数组中的第一个元素

arr.unshift():从数组头部插入一个元素

arr.push():向数组尾部追加一个元素

arr.pop():从数组尾部删除一个元素

arr.splice():替换/删除掉数组中指定位置的某个元素

arr.reverse():反转数组

arr.filter(function(p)):过滤出arr中符合条件的数据,符合条件的留下

​ p为arr中的每个元素,参数function返回一个boolean值,filter返回由boolean值为true的元素组成的新数组

​ 不会改变原数组,会返回一个新数组

arr.sort(function(a, b)):为数组arr调用函数进行排序

​ arr.sort((a, b)=>{ return a-b }) // 前-后,升序

​ arr.sort((a, b)=>{ return b-a }) // 后-前,降序

arr.findIndex(function(item, index){return true/false}):返回数组中第一个满足条件的索引(从0开始), 不满足返回-1

​ item:数组中的每一条数据

​ index:当前item的索引

arr.forEach(function(item, index, s)):遍历数组中的每个元素,每个遍历到的元素都会被传入方法

​ item:数组中的每一条数据

​ index:当前item的索引

​ s:arr本身

arr.reduce(function(pre, current){}, initialValue):条件统计

​ function(pre, current){}:每次执行后的返回值作为下一次函数调用时pre参数的值

​ initialValue:指定后,该值将作为第一次执行函数时pre参数的值,current参数的值为arr第一个元素的值;不指定,第一次执行函数时pre参数的值为arr第一个元素的值,current参数的值为arr第二个元素的值

​ 最后一次调用函数的返回值作为reduce函数最终的返回值

JSON.stringify():将js对象转换为JSON字符串

Date.now():获取当前时间的时间戳

console.dir():输出元素的所有属性和方法

input标签的autofocus 属性:自动获取焦点,并不是所有浏览器都支持

DOM操作API

element.focus():element元素获取到焦点

document.querySelector(css_selector):返回页面中匹配指定CSS 选择器的第一个元素,css_selector为CSS选择器

document.querySelector(css_selector).innerText:返回标签中的文本

通过video标签引入的视频不可播放,添加controls属性即可

opacity:设置不透明度

​ opacity:1

debugger:卡一个断点,程序执行到当前行会停住,不开控制台断点是不会生效的

typeof:查看某个变量的类型

假设age是一个字符串,age*1的结果就是数字,因为age*1伴随着强制类型转换

confirm('确定要删除吗?'):返回值为true/false

对于前端,数组和对象的API很重要

JS中&&(与)和||(或)操作符的返回值

其实就是返回决定他是true还是false的那个操作数
​ ||和&&不是返回条件判断的结果【并不是直接返回true和false】,而是返回他们其中一个操作数的值

1) ||(或)【一真得一,一假得二

  • 如果第一个操作数为真,返回第一个操作数的值
  • 如果第一个操作数为假,返回第二个操作数的值

注:经常用来判断一个变量是否已定义,如果没有定义就给他一个初始值

2)&&(与)【一真得二,一假得一

  • 如果第一个操作数为真,返回第二个操作数的值
  • 如果第一个操作数为假,返回第一个操作数的值

参考网站:js 与或运算符 || && 妙用

js中的false:0、""、null、false、undefined、NaN等

条件判断是否为真时通过 if(!!attr) 【!!的作用是把一个其他类型的变量转成的bool类型】代替 if(attr)

对象({})身上常用的API

obj.hasOwnProperty('属性名'):判断obj身上有没有指定的属性

读取对象中的属性,比如,读取a,{c:5}

中的c属性,可以通过a.c和a['c']的方式读取

NaN的含义:Not a Number,不是一个合法的值

ES6 语法

{...info, ...dataObj}:info和dataObj都是对象,最后的结果中,如果是info和dataObj都有的元素就以dataObj中的元素为主;如果是info中有,dataObj中没有的,就以info的为主,说白了就是不变的不动,仅替换变了的。

解构赋值

当执行到import语句时,会先执行导入文件的代码,然后再继续向下执行当前文件的代码

...info:info是一个对象,比如{a:1,b:2},该表达式的值就是a:1,b:2

一些常用的事件

@click:点击事件

@submit:表单提交事件

<body>
	<!-- 准备好一个容器-->
	<div id="root">
		<form @submit.prevent="demo">
			账号:<input type="text" v-model.trim="userInfo.account"> <br/><br/>
			密码:<input type="password" v-model="userInfo.password"> <br/><br/>
			年龄:<input type="number" v-model.number="userInfo.age"> <br/><br/>
			性别:
			男<input type="radio" name="sex" v-model="userInfo.sex" value="male">
			女<input type="radio" name="sex" v-model="userInfo.sex" value="female"> <br/><br/>
			爱好:
			学习<input type="checkbox" v-model="userInfo.hobby" value="study">
			打游戏<input type="checkbox" v-model="userInfo.hobby" value="game">
			吃饭<input type="checkbox" v-model="userInfo.hobby" value="eat">
			<br/><br/>
			所属校区
			<select v-model="userInfo.city">
				<option value="">请选择校区</option>
				<option value="beijing">北京</option>
				<option value="shanghai">上海</option>
				<option value="shenzhen">深圳</option>
				<option value="wuhan">武汉</option>
			</select>
			<br/><br/>
			其他信息:
			<textarea v-model.lazy="userInfo.other"></textarea> <br/><br/>
			<input type="checkbox" v-model="userInfo.agree">阅读并接受<a href="http://www.atguigu.com">《用户协议》</a>
			<button>提交</button>
		</form>
	</div>
</body>

<script type="text/javascript">
	Vue.config.productionTip = false

	new Vue({
		el:'#root',
		data:{
			userInfo:{
				account:'',
				password:'',
				age:18,
				sex:'female',
				hobby:[],
				city:'beijing',
				other:'',
				agree:''
			}
		},
		methods: {
			demo(){
				console.log(JSON.stringify(this.userInfo))
			}
		}
	})
</script>

@blur:焦点消失事件,常用于输入框

Vue指令工作的步骤

  1. 指令与元素的绑定

    这一步仅仅是在内存里面建立了指令与元素之间的关系,元素此时还没有被放到页面上

模板是不能直接放到页面上的,模板需要经过Vue的解析之后才能放到页面上

标签:返回,arr,Vue,函数,二十,元素,2x,数组
From: https://www.cnblogs.com/wzzzj/p/18045289

相关文章

  • Vue2.x生命周期函数
    介绍Vue.js2.x中的生命周期函数是一系列钩子函数,它们允许你在Vue实例的不同阶段执行代码。这些生命周期钩子函数允许你在特定的阶段添加自定义逻辑,以便在应用程序生命周期的不同点执行操作。创建阶段1)beforeCreate(创建前):在Vue实例初始化之后,数据观测(dataobs......
  • Vue中组件和插件有什么区别?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、组件是什么回顾以前对组件的定义:组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在Vue中每一个.vue文件都可以视为一个组件组件的优势降低整个系统的耦合度,在保持接口不变的......
  • 第二十六天:PostgreSQL体系架构和备份
    一、PostgreSQL体系架构 1、体系架构概览PostgresQL和MySQL相似,也采用典型的C/S模型。PostgresQL体系结构分两部分实例instance磁盘存储实例instance包括进程.内存存储结构 2、进程和内存结构 (1)进程Postmaster主进程它是整个数据库实例的......
  • Vue学习笔记25--过滤器(日期格式化)
    日期格式化日期格式化插件:https://www.bootcdn.cn/moment.js、day.js(轻量级moment.js)插件用法:双击day.js==>复制链接并访问==》另存为dayjs.min==》项目中引用https://github.com/iamkun/dayjs/blob/dev/docs/zh-cn/README.zh-CN.md过滤器总结:定义:对要显示的数据进行......
  • Vue源码解读:响应式原理
    Vue一大特点就是数据响应式,数据的变化会作用于视图而不用进行DOM操作。原理上来讲,是利用了Object.defifineProperty(),通过定义对象属性setter方法拦截对象属性的变更,从而将属性值的变化转换为视图的变化。在Vue初始化时,会调用initState,它会初始化props,methods,data,......
  • vue3笔记 computed计算属性
    计算属性有缓存的,方法没有缓存下列的计算案例是只读的,不可修改的 上述代码为只读属性,优化后<scriptsetuplang="ts">import{ref,computed}from'vue'letname=ref("zhang")letxing=ref("sang")console.log(name.value)letfullName=compute......
  • vue——使用yarn安装electron依赖时报错:RequestError: read ECONNRESET
    参考:1.Electron安装报错RequestError:readECONNRESEThttps://blog.csdn.net/qq_33835370/article/details/123612429?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-123612429-blog-122476584.235^v43^control&spm=1......
  • vue中draggable使用记录
    NPM或yarn安装方式yarnaddvuedraggablenpmi-SvuedraggableUMD浏览器直接引用JS方式<scriptsrc="https://www.itxst.com/package/vue/vue.min.js"></script><scriptsrc="https://www.itxst.com/package/sortable/Sortable.min.js"></scri......
  • Vue学习笔记24--收集表单数据
    Vue收集表单数据总结:<inputtype="text"/>,则v-model收集的是value值,用户输入的就是value值。<inputtype="radio"/>,则v-model收集的是value值,且要给标签配置value值。<inputtype="checkbox"/>没有配置input的value属性,那么收集的就是checked(勾选或未勾选,是bool值)配置inp......
  • 二月二十七日 课堂测试
    <%@pagecontentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>分级测试首界面</title><style>body{display:flex;......