vue前框框架课程笔记(六)

news2024/11/15 10:52:42

目录

  • 单文件组件
    • .vue文件
    • 单文件组件常用结构
      • App.vue
      • Student.vue
      • School.vue
      • main.js
      • index.html
    • 运行结果
  • vue脚手架
    • 具体步骤
    • 项目架构
    • 其他配置项
      • props配置项
      • mixin混入
      • 插件
      • scoped属性

本博客参考尚硅谷官方课程,详细请参考

  • 【尚硅谷bilibili官方】

本博客以vue2作为学习目标(请勿混淆v2与v3的代码规范,否则可能出现报错),详细教程请参考

  • 【 v2.x 官方文档】

单文件组件

.vue文件

组件,实现界面局部功能代码和资源的集合

.vue文件包含如下模块

<template>
	<!--组件结构-->
</template>
<script>
	//组件交互相关代码
</script>
<style>
	/*组件样式*/
</style>

单文件组件常用结构

在这里插入图片描述

App.vue

作用:汇总所有组件。因此我们在<script>标签中需要先进行引入

<template>
  <div>
    <School></School>
    <Student></Student>
  </div>
</template>

<script>
import School from "./School.vue";
import Student from "./Student.vue";
export default {
  name: "App",
  components: {
    School,
    Student,
  },
};
</script>

关于name属性

vue中的name属性主要用来定义该组件被引入时候的名称,根据ES6的特性我们可以了解到,当我们使用export defalut对module进行暴露的时候,其他文件可以以匿名的方式对暴露的部分进行引入,如果我们想要规定暴露部分的名称,使用name属性进行显式定义即可

Student.vue

一个自定义组件

<template>
  <div>
    <h2>学生姓名:{{ name }}(学生组件)</h2>
  </div>
</template>

<script>
export default {
  name: "Student",
  data() {
    return {
      name: "张三",
      age: 90,
    };
  },
};
</script>

<style></style>

School.vue

一个自定义组件

<template>
  <div class="school">
    <h2>学校名称{{ name }}</h2>
  </div>
</template>

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

<style>
.school {
  background-color: aquamarine;
}
</style>

main.js

我们需要创建一个Vue实例使用我们创建的组件,这是我们就需要一个Js文件

import App from "./App.vue";

new Vue({
  el: "#root",
  components: { App },
});

index.html

Vue实例对象需要为一个容器服务,因此我们创建一个html文件

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>单文件组件使用</title>
  </head>
  <body>
    <div id="root">
      <App></App>
    </div>
  </body>
  <script src="https://cdn.staticfile.org/vue/2.2.2/vue.js"></script>
  <script src="./main.js"></script>
</html>

运行结果

我们尝试使用live server打开index.html文件,但是页面中并没有出现内容,打开控制台,发现报错:Uncaught SyntaxError: Cannot use import statement outside a module,接下来我们尝试使用Vue脚手架解决该问题

vue脚手架

vueCLI(vue command line interface):vue官方提供的标准化开发工具

具体步骤

  • 更改下载路径
npm config set registry https://registry.npm.taobao.org
  • 使用npm命令进行全局安装
npm install -g @vue/cli
  • 切换到要创建项目的目录打开cmd命令行,输入
vue create 项目名称
  • 启动项目
npm run serve

项目架构

在这里插入图片描述

脚手架框架解析

├── node_modules
├── public
│ ├── favicon.ico: 页签图标
│ └── index.html: 主页面
├── src
│ ├── assets: 存放静态资源
│ │ └── logo.png
│ │── component: 存放组件
│ │ └── HelloWorld.vue
│ │── App.vue: 汇总所有组件
│ │── main.js: 入口文件
├── .gitignore: git版本管制忽略的配置
├── babel.config.js: babel的配置文件
├── package.json: 应用包配置文件
├── README.md: 应用描述文件
├── package-lock.json:包版本控制文件

关于vue.js与vue.runtime.xxx.js以及render函数

  1. vue.js是完整版的Vue,包含:核心功能 + 模板解析器。
  2. vue.runtime.xxx.js是运行版的Vue,只包含:核心功能;没有模板解析器。(实际上当我们使用webpack对vue项目进行打包时,我们并不需要模板解析器,因此该版本的vue应运而生)
  3. 因为vue.runtime.xxx.js没有模板解析器,所以不能使用template这个配置项,需要使用render函数接收到的createElement函数去指定具体内容。

其他配置项

props配置项

用于让组件接收外部传过来的数据

传递数据:<Demo name="xxx"/>
接收数据:

  1. 第一种方式(只接收):props:['name']

  2. 第二种方式(限制类型):props:{name:String}

  3. 第三种方式(限制类型、限制必要性、指定默认值):

props:{
	name:{
	type:String, //类型
	required:true, //必要性
	default:'老王' //默认值
	}
}

mixin混入

  1. 功能:可以把多个组件共用的配置提取成一个混入对象

  2. 使用方式:

    第一步定义混合:

    {
        data(){....},
        methods:{....}
        ....
    }
    

    第二步使用混入:

    ​ 全局混入:Vue.mixin(xxx)
    ​ 局部混入:mixins:['xxx']

插件

  1. 功能:用于增强Vue

  2. 本质:包含install方法的一个对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的数据。

  3. 定义插件:

    对象.install = function (Vue, options) {
        // 1. 添加全局过滤器
        Vue.filter(....)
    
        // 2. 添加全局指令
        Vue.directive(....)
    
        // 3. 配置全局混入(合)
        Vue.mixin(....)
    
        // 4. 添加实例方法
        Vue.prototype.$myMethod = function () {...}
        Vue.prototype.$myProperty = xxxx
    }
    
  4. 使用插件:Vue.use()

scoped属性

  1. 作用:让样式在局部生效,防止冲突。
  2. 写法:<style scoped>

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

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

相关文章

zookeeper源码分享四 ---- RequestProcessor 处理链路

单机zookeeper RequestProcessor 处理链路 将请求放入LinkedBlockingQueue队列中&#xff0c;通过一个队列中。启动一个线程去消费这个队列&#xff0c;避免了阻塞。 zookeeper的处理是实现RequestProcessor接口的processRequest(Request request) 方法。 PrepRequestProcesso…

exsi删除虚拟机提示在当前状况下不允许执行此操作解决方法、vmware删除虚拟机提示在当前状况下不允许执行此操作解决方法

说明 我这exsi版本为5.5 今天在回收虚拟机的时候有些虚拟机无法删除&#xff0c;提示下面内容。 解决方法 方法1 直接给删除失败的虚拟机开机&#xff0c;开机完毕以后再关机就能直接删除了。 方法2 删除失败的虚拟机&#xff0c;也无法开机的情况下&#xff0c;实用该方…

春节档的观影“热”,拯救不了影视圈的“冷”?

配图来自Canva可画 疫情三年&#xff0c;影视业也随着“冬眠”了三年。 先是疫情爆发影响影视业上下游的正常生产&#xff0c;而后国家加速规范影视行业税收秩序&#xff0c;资本相继撤离&#xff0c;再后来影视企业入不敷出业绩巨亏&#xff0c;影视寒冬来临成为行业共识。在…

MMCV - dataset_analysis.py 可视化检测和跟踪任务自定义数据集神器

做视觉检测跟踪任务时,我们需要在论文插图中体现出我们数据集的信息,这个时候就有一个非常好用的神器:dataset_analysis.py的文件。该文件能够帮助用户直接可视化custom数据集的bbox实例信息,如上图所示,包括:显示类别和 bbox 实例个数的分布图;显示类别和 bbox 实例宽/…

中科院和人社部职称评审所需材料内容对比

目录1.前言2.中科院所需材料2.1 基本情况2.2 工作经历2.3 主要专业技术工作业绩2.4 重要著&#xff08;译&#xff09;作、论文及技术工作报告2.5 继 续 教 育 情 况2.6 考试、考核情况2.7 单位推荐意见2.8 材料审核意见2.9 个人技术报告2.10 未来工作展望3.人社部所需材料3.1 …

三十八、Kubernetes1.25中数据存储第二篇

1、概述在前面已经提到&#xff0c;容器的生命周期可能很短&#xff0c;会被频繁地创建和销毁。那么容器在销毁时&#xff0c;保存在容器中的数据也会被清除。这种结果对用户来说&#xff0c;在某些情况下是不乐意看到的。为了持久化保存容器的数据&#xff0c;kubernetes引入了…

行为型模式 - 状态模式State

状态模式的定义与特点 状态&#xff08;State&#xff09;模式的定义&#xff1a;对有状态的对象&#xff0c;把复杂的“判断逻辑”提取到不同的状态对象中&#xff0c;允许状态对象在其内部状态发生改变时改变其行为。 状态模式是一种对象行为型模式&#xff0c;其主要优点…

Oracle用户权限管理

一、运行企业管理器 管理员身份运行客户端的企业管理器 首次打开需要添加数据库信息&#xff0c;这里使用已经存在的数据库orcl 使用系统用户登录 用户名&#xff1a;system&#xff0c;口令orcl 或者不输入使用SYSDBA登录 可以查看所有用户的详细信息: 用户名, 账户状态,…

union和union all 的区别

1&#xff1a;union用于合并两个或多个select 语句的结果集。 注意&#xff1a; 1&#xff1a;union内部的select 语句必需拥有相同数量的列&#xff0c;列也夜必须拥有相似的数据类型&#xff0c;同时每条select 语句中的列的顺序必须相同。 2&#xff1a;union结果集中的列…

JVM垃圾回收与性能调优策略

一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范&#xff0c;JVM将内存划分为&#xff1a; New&#xff08;年轻代&#xff09; Tenured&#xff08;年老代&#xff09; 永久代&#xff08;Perm&#xff09; 其中New和Tenured属于堆内存&#xff0c;堆内存会从JVM启动参…

项目代码版本控制与保护

一、版本命名规则 1.1 需求开发分支命名规则 格式&#xff1a;dev_v版本号_需求名称 案例&#xff1a;dev_v01.31_TX202301141 dev_v01.31_数字产品平台订单查询优化 1.2 测试环境发布分支命名规则 格式&#xff1a;uat_deploy 1.3 预上环境分支命名规则 格式&#xff1a…

Apsara Clouder云计算专项技能认证:云服务器ECS入门

文章目录 一、什么是云服务器ECS二、如何获取一台云服务器ECS三、5分钟学会管理云服务器ECS四、【实验】ECS云服务器新手上路五、【实验】基于ECS搭建云上博客入口: https://edu.aliyun.com/certification/cldc15 一、什么是云服务器ECS

8K超高清企业获广东省专精特新称号,背后意味着什么?

2023年开年之际&#xff0c;广州博冠光电科技股份有限公司及其子公司广州博冠智能科技有限公司通过“2022年广东省专精特新中小企业”和“2022年广东省名优高新技术产品”2项权威认定荣誉。广东省“专精特新”认定是什么&#xff1f;“专精特新”是指中小企业具备专业化、精细化…

github入门指南

文章目录什么是开源开源项目托管平台github使用介绍什么是github使用github&#xff08;1&#xff09;注册&#xff08;2&#xff09;创建远程仓库&#xff08;3&#xff09;github功能介绍本地创建仓库与远程仓库进行关联什么是开源 开源&#xff0c;即开放源代码&#xff0c…

呆头鹅批量剪辑视频软件:玩的就是裂变,剪辑需求者的终身助理

文案来自于公众号&#xff1a;生财风暴 图片来自于公众号&#xff1a;生财风暴 随着5G时代到来&#xff0c;短视频&#xff0c;电商&#xff0c;自媒体等平台全面崛起&#xff0c;目前影视制作行业前景的9字真言: 需求大&#xff01;门槛低&#xff01;薪资高&#xff01; 呆头…

迟来的年度总结 —— 我与 csdn 的故事

&#x1f451;作者主页&#xff1a;安 度 因 &#x1f3e0;学习社区&#xff1a;StackFrame &#x1f4d6;专栏链接&#xff1a;我的故事 文章目录引子我的大一我与 csdn 的相识第一次创作喜悦 —— 干劲满满挫败 —— 厚积薄发意外 —— 收获果实博客新星陪伴社区与StackFrame…

修改 bootargs 方式增加分区(mtd分区和blkdevparts分区)

1、Linux内核设置分区的两种方式 1.1、内核代码中写死 在内核的平台代码中写死&#xff0c;然后在初始化NandFlash的时候设置。 1.2、uboot通过bootargs传递分区表 (1)u-boot将分区信息&#xff08;形如&#xff1a;mtdpartsxxx&#xff0c;blkdevpartsxxx&#xff09;添加到b…

​力扣解法汇总2325. 解密消息

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣 描述&#xff1a; 给你字符串 key 和 message &#xff0c;分别表示一个加密密钥和一段加密消息。…

FastDeploy全场景高性能AI部署工具:加速打通AI模型产业落地的最后一公里

飞桨目前为开发者提供了涵盖多种领域的模型套件&#xff0c;开发者可以使用这些套件基于自身数据集快速完成深度学习模型的训练。但在实际产业部署环境下&#xff0c;开发者在部署模型到不同硬件和不同场景时面临以下三个痛点问题。 碎片化。在部署过程中&#xff0c;由于深度学…