vue part6

news2024/9/22 7:40:59

Vue脚手(CLI)

第一步(仅第一次执行):全局安装@vue/cli。
npm install -g @vue/cli-
第二步:切换到你要创建项目的目录,然后使用命令创建项目vue create xxxx(项目名字)
第三步:启动项目 npm run servee 

babel.config.js是es6=>es5的文件,

package.json是配置文件,

对于main.js分析

我来回顾一下,$mount用来挂载实例,和el的功能基本一样,这个$mount是用来手动挂载的

assets文件夹放静态资源,如logo.png,components文件夹中的App.vue

public文件夹的index.html,

前面的兄弟应该用lintOnSave = false   关闭lint的自检再重启服务就可以了

前方报错Scholl和Student报错的同学,修改组件name名称采用大驼峰命名

总结下来工作过程就是先引入vue组件,然后执行创建实例,然后渲染容器

error的话改一下组件名,因为vue的规范要求组件名必须是多个单词,改成MySchool之类的就可以了,两个组件名报错的,把组件里的vc的name值改成双驼峰命名,如SchoolName

render函数

运行时vue残缺了模板解析器 需要render辅助

两条路 交给render或者引入完整的vue.js

063_尚硅谷Vue技术_render函数_哔哩哔哩_bilibili

模板解析器占了整个vue体积的3分1,运行时构建不包含模板编译器,因此不支持template选项,只能用render选项,但即使使用运行时构建,在单文件组件中也依然可以写模板,因为单文件组件的模板会在构建时预编译为render函数

webpack已经可以解析cssjs了,不要用模板解析器:模板解析器是用来解析除.vue文件外的模板的,.vue文件中的模板由compiler进行,render则不限

模板解析器是把HTML中的模板解析成json对象AST,这个对象包含了dom的各种属性,在非单文件中必须要模板解析器,但是单文件中的组件都是编译之后的,组件中直接就是ast,就不需要模板解析器了

vue的配置文件

vue把webpack的文件都隐藏了,想看就

vue inspect > output.js

vue inspect > output.js用不了的,使用管理员权限打开就行了,output.js就出现了,1300多行代码。这个文件是个导出文件,相当于把源文件复制出来,也就是说他是无法修改的

只有部分可修改,感觉改配置这就是没事找事

语法检查关不掉可能是安装了ESLint插件需要禁用

ref属性

这里利用的插件是Vue3 Snippets 不是Vetur

065_尚硅谷Vue技术_ref属性_哔哩哔哩_bilibili

有一种具体的感觉,老师讲得太细了,纯纯的小白都能听得很明白,

_props配置

在Student.vue文件中

props:{name:string,age:Number,sex:string}

props:{name:{type:String,required:true},age:{type:Number,default:99},sex:{type:String,required:true}} 

这里的receive方法是vc的,但是它APP的vc上的方法是相同的引用地址,所以你在header上调用就相当于在app上调用

等于就是赋值给一个新变量,之后操作的都是新变量,props的变量不修改

<template>
    <div>
        <h1>{{ msg }}</h1>
        <h2> 学生姓名:{{ name }} </h2>
        <h2> 学生性别:{{ sex }} </h2>
        <h2> 学生年龄:{{ myAge + 1 }} </h2>
        <button 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', 'key'],
    //接收的同时对数据进行类型限制
/* 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文件

mixin混入

App.vue

student.vue

<template>
    <div>      
        <h2 @click="showName"> 学生姓名:{{ name }} </h2>
        <h2> 学生性别:{{ sex }} </h2>
    </div>
</template>

<script>
export default {
    name: 'Student',
    data() {
        //console.log(this)
        return {
            name: '张三',
            sex: '男',
        }
    },
    methods: {
        showName() {
            alert(this.name)
        }
    },

}
</script>

抽出公用代码

export const mixin={
methods: {
        showName() {
            alert(this.name)
        }
    },
}

在另外两个vue中,加一句import {hunhe} from './mixin'和mixins:[hunhe]

<template>
    <div>
    <h2 @click="showName">学校名称:{{name}}</h2>
    <h2>学校地址:{{address}}</h2>
</div>
</template>
<script>
//引入一个hunhe
    import {hunhe} from './mixin'
    export default {
        name:'School',
    data(){
        return{
        name:'尚硅谷',
        address:'北京'
    }
    },
    mixins:[hunhe]
}
</script>

因为mounted可以配置多个方法的,这里就会把配置内容合并在一起。mounted是对状态施加功能,不会有混合的需求,

如果写成两个组件,相同的代码用mixin维护,其他逻辑各写各的,对于后期维护就非常清晰容易

功能:可以把多个组件共用的配置提取成一个混入对象使用方式:混入是vm和vc构造函数的一个属性配置,目的是为了提高配置项的代码复用
第一步定义混合,例如:data(){..], methods: {....}

第二步使用混入,例如:
(1).全局混入:Vue.mixin(xxx) (2).局部混入:mixins:['xxx'] 

插件

插件可以导入全局变量以及对Vue进行全局配置

068_尚硅谷Vue技术_插件_哔哩哔哩_bilibili

注意脚手架版本原因,试着用createApp(App).use(plugins),新版脚手架中,createApp(App)就是Vue,使用方法一样 

过滤器是一个函数,用来接受一个参数,处理完成之后,返回一个参数,这里的mySlice是前面课程切时间那个,使用需要用管道符连接,如 data | mySlice

终端"binding"报错的,在全局指令那里 log一下binding就不会了,定义全局指令有一个binding没用上,删了终端就不会报错

插件是写一些全局可用的功能,和混合区别在于,混合是复用组件内的配置,混合既可以全局混合,也可以单独混合,组件则全局使用,不需要每次都引入

scoped样式

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)
})

App.vue

<template>
    <div>
        <School/>
        <Student/>
    </div>
</template>
<script>
import School from './components/School'
import Student from './components/Student'
export default {
    name: 'App',
    components: {School, Student}
}
</script>

Student.vue

<template>
  <div class="test">
    <h2>学生姓名:{{name}}</h2>
    <h2>学生性别:{{sex}}</h2>
  </div>
</template>

<script>
  export default {
    name:'Student',
    data(){
      return {
        name: '张三',
        sex:'男'
      }
    }
  }
</script>

<style> 
  .test{
    background-color: ■ orange;
  }
</style>

School.vue

<template>
    <div class="demo">
        <h2>学校名称:{{ name }}</h2>
        <h2>学校地址:{address}</h2>
    </div>
</template>
<script>
export default {
    name: 'School',
    data() {
        return {
            name: '尚硅谷atguigu',
            address: '北京',
        }
    },
}
</script>
<style>
.demo {
    background-color: skyblue;
}
</style>

组件都是一起的,冲突的时候,根据App.vue引用顺序后来者居上

<style scoped>
.demo {
    background-color: skyblue;
}
</style>

scoped是指让样式在局部生效,防止冲突

子组件只控制自己的样式(scope)APP组件只控制自己样式,不能更改子组件样式

对less版本和vue 的兼容性问题,069_尚硅谷Vue技术_scoped样式_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2096275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

el-table利用折叠面板 type=“expand“ 嵌套el-table,并实现 明细数据多选,选中明细数据后返回原数据得嵌套格式

效果图: 废话不多说直接上代码&#xff0c;完整代码展示&#xff1a; <template><el-tableborderref"multipleTable":data"tableData"tooltip-effect"dark"style"width: 100%"><el-table-columnwidth"50"la…

线程池在接受到30个比较耗时的任务时的状态,在前面30个比较耗时的任务还没执行完成的情况下,再来多少个任务会触发拒绝策略?

目录 一、提出问题 二、解答 问题 1: 线程池在接受到30个比较耗时的任务时的状态 问题 2: 在前面30个比较耗时的任务还没执行完成的情况下&#xff0c;再来多少个任务会触发拒绝策略&#xff1f; 总结 一、提出问题 我们首先自定义一个线程池&#xff1a; new ThreadPoo…

18042 计算分段函数值

### 伪代码 1. 读取输入的实数x。 2. 根据x的值计算y&#xff1a; - 如果x < 1&#xff0c;y x。 - 如果1 < x < 10&#xff0c;y 2x - 1。 - 如果x > 10&#xff0c;y 3x - 11。 3. 输出y的值&#xff0c;保留两位小数。 ### C代码 #include <io…

fl studio 21/24破解版(水果音乐制作软件24) v24.1.1.4285附安装教程

fl studio 21/24破解版&#xff0c;又被国内网友称之为水果音乐制作软件24&#xff0c;是Image-Line公司成立26周年而发布的一个版本&#xff0c;是目前互联网上最优秀的完整的软件音乐制作环境或数字音频工作站&#xff0c;包含了编排&#xff0c;录制&#xff0c;编辑&#x…

World of Warcraft [CLASSIC][80][Grandel] Call to Arms: Warsong Gulch

Call to Arms: Warsong Gulch - Quest - 魔兽世界怀旧服CTM4.34《大地的裂变》数据库_大灾变85级魔兽数据库_ctm数据库 10人PVP战歌峡谷&#xff0c;该战场经常用来互刷军衔和荣誉&#xff0c;哈哈 wow plugin_魔兽世界挂机插件-CSDN博客

完美解决node-sass@4.14.1 postinstall: `node scripts/build.js` 问题

node v14.16.0 安装node-sass4.14.1会出现报错 看日志排查发现设置的源国内的都有问题 直接梯子下载&#xff1a; https://github.com/sass/node-sass/releases/download/v4.14.1/win32-x64-83_binding.node 本地启动phpstudy&#xff0c;当然你也可以放在你服务器上&#xff0…

学习笔记 ---- 数论分块(整除分块)

文章目录 算法概述引理引理 1 1 1引理 2 2 2 数论分块结论&#xff08;区间右端点公式&#xff09;过程 N N N 维数论分块向上取整的数论分块 例题 H ( n ) H(n) H(n)[CQOI2007] 余数求和[清华集训2012] 模积和 算法 概述 数论分块可以快速计算一些含有除法向下取整的和式(即…

掌握 SQL 数据操纵的基础技巧

在数据库管理中&#xff0c;SQL 数据操纵语言 (DML) 是至关重要的工具。它主要包括 INSERT、UPDATE 和 DELETE 语句&#xff0c;用于对数据库中的数据进行插入、更新和删除操作。本文将带你快速了解这些基本操作。 插入数据 在创建了一个表之后&#xff0c;最常见的操作就是插…

基于SpringBoot+Vue+MySQL的的宠物商城网站

系统背景 基于SpringBootVueMySQL的宠物商城网站是一个结合了现代Web开发技术的综合性电商平台&#xff0c;专为宠物爱好者及宠物商家设计。该系统背景可以从多个方面来阐述&#xff0c;包括但不限于市场需求、技术选型、用户体验以及平台价值等方面。 1. 市场需求 随着人们生…

python内置模块time详解(我们需要了解的多种时间格式)

Python的time模块提供了各种与时间相关的函数。我们可以获取当前时间、操作时间日期、计算两个时间差等。 时间有两种标准表示法: 数字表示: 整数或浮点数&#xff0c;通常是自从1970年1月1日以来的秒数。9个整数组成的元组&#xff1a;元组项包含年份&#xff0c;月份&#…

第 4 章 第 4 章 卷积神经网络-datawhale ai夏令营

独热向量 y ′ 的长度决 定了模型可以识别出多少不同种类的东西。我们希望 y ′ 和 yˆ 的交叉熵越小越好。 为了避免过拟合&#xff0c;在做图像识别的时候&#xff0c;考虑到图像本身的特性&#xff0c;并不一定 需要全连接&#xff0c;即不需要每个神经元跟输入的每个维度都…

进程通信——消息队列

文章目录 1.概念1.0 IPC1.1 什么是消息队列1.2 消息队列工作机制1.3 消息队列与其他进程通信机制的比较&#xff1a; 2.使用System-V版2.1 用户消息缓冲区2.2 创建消息队列msgget2.3 添加消息到消息队列msgsend2.4 从消息队列读取消息、2.5 消息队列的控制函数msgctrl2.6 msqid…

SpringBoot中,启动A服务,naocs却注册B服务,解决思路。

今天遇到了一个令我非常费解的报错&#xff0c;我明明启动的是auth服务&#xff0c;但是nacos愣是给我注册的patient服务&#xff0c;下面看看解决思路&#xff08;虽然我这个问题很乌龙&#xff0c;但如果真的是你的配置有问题&#xff0c;那么这篇文章也是可以帮助到你。&…

开源通用验证码识别OCR —— DdddOcr 源码赏析(二)

文章目录 前言DdddOcr分类识别调用识别功能classification 函数源码classification 函数源码解读1. 分类功能不支持目标检测2. 转换为Image对象3. 根据模型配置调整图片尺寸和色彩模式4. 图像数据转换为浮点数据并归一化5. 图像数据预处理6. 运行模型&#xff0c;返回预测结果 …

如何在Windows和Mac上免费提取RAR文件?这里有方法

序言 你有没有下载过一个文件,却发现它有一个奇怪的.rar文件扩展名?RAR是一种压缩文件格式,与ZIP文件非常相似,在本文中,我们将向你展示如何在Windows或macOS上打开RAR文件。 如何在Windows 11上打开RAR文件 Windows 11在2023年增加了对RAR文件的原生支持。从那时起,你…

前端框架vue3中的条件渲染(v-show,v-if,v-else-if,v-else)

目录 v-show: 需求&#xff1a; v-if 区别与v-show&#xff1a; v-if和v-show的选择&#xff1a; v-else-if和v-else 联合使用&#xff1a; v-show: 部分代码如图&#xff1a; <body><div id"root"><div ><h1>n的值为{{n}}</h1>…

【计算机网络】浏览器输入访问某网址时,后台流程是什么

在访问网址时&#xff0c;后台的具体流程可以因不同的网站、服务器和应用架构而异。 实际过程中可能还涉及更多的细节和步骤&#xff0c;如缓存处理、重定向、负载均衡等。 此外&#xff0c;不同的网站和应用架构可能会有不同的实现方式和优化策略。 部分特定网站或应用&#x…

数据仓库系列19:数据血缘分析在数据仓库中有什么应用?

你是否曾经在复杂的数据仓库中迷失方向&#xff0c;不知道某个数据是从哪里来的&#xff0c;又会流向何方&#xff1f;或者在处理数据质量问题时&#xff0c;无法快速定位根源&#xff1f;如果是这样&#xff0c;那么数据血缘分析将会成为你的得力助手&#xff0c;帮助你在数据…

协议转换桥+高速协议传输终端

多路协议传输终端&#xff08;正在更新&#xff09; 整体框图&#xff08;正在更新&#xff09; 万兆UDP协议栈 整体框图 10G 8b10b phy层设计 整体框图 报文格式

从pdf复制的表格内容粘贴到word或excel表格保持表格格式

对于it工作&#xff0c;硬件和软件&#xff0c;经常需要从pdf复制表格内容到word或excel&#xff0c;但是windows的ctrlc和ctrlv只能复制内容而不能保留表格的格式。 粘贴进word或excel的表格后&#xff0c;不能保持原来表格的排列&#xff0c;特别是word&#xff0c;复制的pdf…