修改默认配置\ref属性\props配置

14 篇文章 0 订阅

一.修改默认配置

终端输入vue inspect > output.js

会在项目根目录下生成output.js,可查看相关配置

public文件夹不可改、src不可改、main.js不可改

asset,components名字和其他文件可改

vue脚手架的这个文件可以修改配置,放在和package.json同路径下

举例,关闭语法检查。其他配置也是官网查看修改即可

总结

使用vue inspect > output.js可以查看到Vue脚手架的默认配置

使用vue.config.js可以对脚手架进行个性化定制

二.ref属性

1.被用来给元素或子组件注册引用信息(id的替代者)

2.应用在html标签上获取的是真实的DOM元素,应用在组件标签上的是组件实例对象(vc)

3.使用方式

打标签:<h1 ref="xxx">.....</h1> 或<School ref="xxx"><School>

获取:this.$refs.xxx

<template>
  <div>
	  <h1 v-text="msg" ref="title"></h1>
	  <button ref="btn" @click="showDom">点我输出Dom</button>
	  <MySchool ref ="sch"></MySchool>
  </div>
</template>

<script>
import MySchool from './components/MySchool.vue'
export default {
	name:'App',
	components:{MySchool},
	data(){
		return {
			msg:"欢迎学习"
		}
	},
	methods: {
		showDom(){
			console.log('@',this.$refs.title) //真实DOM元素
			console.log('@',this.$refs.btn) //真实DOM元素
			console.log('@',this.$refs.sch) //组件实例对象
		}
	},
}
</script>

<style>

</style>

自己写一个src步骤:1.main.js;2.App.vue;3.components中的组件

三.props配置

父传子,父组件在组件标签中写标签属性进行传递,子组件通过props接收。实现了组件在复用,但是数据是动态的

单向向下绑定,只能父组件修改子组件的值,子组件不能修改父组件的值。父影响子,子不影响父 不能在组件中直接修改 prop 传递过来的值,Vue 会给出警告 prop。

子组件props的顺序和组件用的时候顺序不一样没关系

(1)vc也就是this身上有data和props的数据

图中,父组件传递值的时候加了:,说明18是个表达式,接收到的是18,如果+1,就会显示19、另外如果要使用传过来的值的话,用this调用即可

(2)限制类型后,如果传参错误,会报错

 (3)如果没有传不要声明

(4)不能修改props的数据

 

如果非要改,在data中重复制一份。(不能和props的名字一样,props优先级高,优先被接收放到网页上) 

汇总:

目录结构

|-- App.vue
|-- components
|   `-- Student.vue
`-- main.js

 Student.vue

<template>
	<div>
		<h1>{{msg}}</h1>
		<h2>学生姓名:{{name}}</h2>
		<h2>学生性别:{{sex}}</h2>
		<h2>学生年龄:{{myAge+1}}</h2>
		<button @click="updateAge">尝试修改收到的年龄</button>
	</div>
</template>

<script>
	export default {
		name:'Student',
		data() {
			console.log(this)
			return {
				msg:'我是一个尚硅谷的学生',
				myAge:this.age
			}
		},
		methods: {
			updateAge(){
				this.myAge++
			}
		},
		//简单声明接收
		// props:['name','age','sex'] 

		//接收的同时对数据进行类型限制
		/* props:{
			name:String,
			age:Number,
			sex:String
		} */

		//接收的同时对数据:进行类型限制+默认值的指定+必要性的限制
		props:{
			name:{
				type:String, //name的类型是字符串
				required:true, //name是必要的
			},
			age:{
				type:Number,
				default:99 //默认值
			},
			sex:{
				type:String,
				required:true
			}
		}
	}
</script>

App.vue

<template>
	<div>
		<Student name="李四" sex="女" :age="18"/>
	</div>
</template>

<script>
	import Student from './components/Student'

	export default {
		name:'App',
		components:{Student}
	}
</script>

main.js

//引入Vue
import Vue from 'vue'
//引入App
import App from './App.vue'
//关闭Vue的生产提示
Vue.config.productionTip = false

//创建vm
new Vue({
	el:'#app',
	render: h => h(App)
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值