ref:相当于css中的id
1. 作用:用于给节点打标识 2. 读取方式:this.$refs.xxxxxx
- <template>
- <div>
- <h1 v-text="msg" ref="title"></h1>
- <button ref="btn" @click="showDOM">点我输出上方的DOM元素</button>
- <School ref="sch"/>
- </div>
- </template>
-
- <script>
- //引入School组件
- import School from './components/School'
-
- export default {
- name:'App',
- components:{School},
- data() {
- return {
- msg:'欢迎学习Vue!'
- }
- },
- methods: {
- showDOM(){
- console.log(this.$refs.title) //真实DOM元素
- console.log(this.$refs.btn) //真实DOM元素
- console.log(this.$refs.sch) //School组件的实例对象(vc)
- }
- },
- }
- </script>
props :用于父组件给子组件传递数据
读取方式一: 只指定名称 props: ['name', 'age', 'setName']
读取方式二: 指定名称和类型 props: { name: String, age: Number, setNmae: Function }
读取方式三: 指定名称/类型/必要性/默认值 props: { name: {type: String, required: true, default:xxx}, }
- <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>
混入/ mixin
1. 在xx.js 中声明
minxin.js
- export const hunhe = {
- methods: {
- showName(){
- alert(this.name)
- }
- },
- mounted() {
- console.log('你好啊!')
- },
- }
- export const hunhe2 = {
- data() {
- return {
- x:100,
- y:200
- }
- },
- }
2. main.js 中引入, 全局生效
- //引入Vue
- import Vue from 'vue'
- //引入App
- import App from './App.vue'
- import {hunhe,hunhe2} from './mixin'
- //关闭Vue的生产提示
- Vue.config.productionTip = false
-
- Vue.mixin(hunhe)
- Vue.mixin(hunhe2)
-
-
- //创建vm
- new Vue({
- el:'#app',
- render: h => h(App)
- })
3. 或在vue文件中单独引入,局部生效,
- <template>
- <div>
- <h2 @click="showName">学生姓名:{{name}}</h2>
- <h2>学生性别:{{sex}}</h2>
- </div>
- </template>
-
- <script>
- // import {hunhe,hunhe2} from '../mixin'
-
- export default {
- name:'Student',
- data() {
- return {
- name:'张三',
- sex:'男'
- }
- },
- // mixins:[hunhe,hunhe2]
- }
- </script>