19_Vue脚手架

19_Vue脚手架

vue-cli

初始化脚手架

第一步(仅第一次执行): 全局安装@vue/cli

​ npm install -g @vue/cli

第二步 切换到你要创建项目的目录,然后使用命令创建项目

​ vue create xxxx

第三步 启动项目

​ npm run sreve

备注

如出现下载缓慢请配置npm淘宝镜像 npm config set registry https://registry.npm.taobao.org

关于不同版本的Vue:
1.vue.js 与vue.runtime.xxx.js的区别;
(1).vue.js是完整版的Vue,包含:核心功能+模板解析器。
(2) .vue.runtime.xxx,js是运行版的Vue,只包含:核心功能;没有模板解析器。

​ 2.因为vue,runtime.xxx.js没有模板解析器,所以不能使用template配置项,需要使用render函数接收到的createElement函数去指定具体内容。

分析脚手架结构

在这里插入图片描述

修改默认配置

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave:false //关闭语法检查
})

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>
    <School ref="sch"></School>
  </div>
</template>

<script>
import School from "./components/School";
export default {
  name: "App",
  components: {
    School,
  },
  data() {
    return {
      msg: "欢迎学习Vue!",
    };
  },
  methods: {
    showDOM() {
      console.log(this.$refs.title);
      console.log(this.$refs.btn);
      console.log(this.$refs.sch);
    },
  },
};
</script>

prop属性

小总结

在这里插入图片描述

代码演示

<template>
  <div>
    <h2>{{ msg }}</h2>
    <h2>学生名称:{{ name }}</h2>
    <h2>学生年龄:{{ myAge + 1 }}</h2>
    <button @click="updateAge">点我年龄加1</button>
  </div>
</template>

<script>
export default {
  name: "Student",
  data() {
    return {
      msg: "我是泉大的学生",
      myAge: this.age,
    };
  },
  methods: {
    updateAge() {
      this.myAge++;
    },
  },
  //简单接收
  // props:['name','age']

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

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

mixin属性

功能:可以把多个组件共用的配置提取成一个混入对象
使用方式:
	第一步定义混合J例如:
		{
		data(){....},
		methods:{...}
		....
		}
	第二步使用混入,例如:
		(1).全局混入: vue.mixin(xxx)
		(2).局部混入:mixins: [ ' xxx ']

代码演示

1.定义混合

export const hunhe1 = {
  methods: {
    showName() {
      alert(this.name);
    },
  },
};
export const hunhe2 = {
  data() {
    return {
      x: 100,
      y: 200,
    };
  },
};

2.局部使用 school.vue

<script>
import {hunhe1,hunhe2} from '../mixin'
export default {
  name: "Student",
  data() {
    return {
      name: "尚硅谷",
      address: "北京"
    };
  },
 mixins:[hunhe1,hunhe2]

};
</script>

3.全局使用 main.js

import {hunhe1,hunhe2} from './mixin'

Vue.config.productionTip=false

Vue.mixin(hunhe1)
Vue.mixin(hunhe2)

插件

在这里插入图片描述

代码演示

1.定义一个插件

export default {
  install(Vue) {
    // console.log("@@@install",Vue);

    //全局过滤器
    Vue.filter('mySlice',function(value){
        return value.slice(0,4)

    })
  },
};

2.引入插件 main.js

//引入插件
import plugins from './plugins'

Vue.config.productionTip=false
//应用插件
Vue.use(plugins)

3.使用插件 school.vue

<template>
  <div>
    <h2>学校名称:{{ name | mySlice }}</h2>
  </div>
</template>

<script>
export default {
  name: "Student",
  data() {
    return {
      name: "尚硅谷123456",
    };
  },
};
</script>

scoped属性

<style scoped>
	/*
	解决各个Vue中样式名的冲突
	scoped作用域 作用在自己的Vue文件
	*/
</style>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值