前端基础 Vue -组件化基础

1.全局组件

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="node_modules/vue/dist/vue.js"></script><script>Vue.config.productionTip = false //设置为 false 以阻止 vue 在启动时生成生产提示</script>
</head><body><div id="root"><button @click="add">我被点击了 {{count}} 次</button><counter></counter><counter></counter><counter></counter><counter></counter><counter></counter><counter></counter><counter></counter></div><script>//1、全局声明注册一个组件Vue.component("counter", {template: `<button @click="add">我被点击了 {{count}}  次</button>`,data() {return {count: 1}},methods: {add() {this.count++;}}})const app = new Vue({el: '#root',data: {count: 1},methods: {add() {this.count++;}}});</script><script></script>
</body></html>
  1. 组件其实也是有一个vue实例,因此它在定义时也会接收:data、methods、生命周期函数等
  2. 不同的是组件不会与页面的元素绑定,否则就无法复用了,因此没有el属性。
  3. 全局组件定义完毕,任何vue实例都可以直接在绑定的html 容器 中通过 组件名称来使用组件了
  4. data必须是一个函数,作用就是,提供内部作用域,是其vue实例提供的data对象是独立存在的。以提供一个复用效果。

2.局部组件

    //局部声明一个组件const buttonCounter = {template: `<button @click="add">我被点击了 {{count}}  次</button>`,data() {return {count: 1}},methods: {add() {this.count++;}}}const app = new Vue({el: '#root',data: {count: 1},methods: {add() {this.count++;}},components:{'button-counter':buttonCounter}});
   <div id="root"><button @click="add">我被点击了 {{count}} 次</button><button-counter></button-counter></div>

3.生命周期

  1. beforecreate: 数据模型未创建  模版未创建
  2. created :数据模型已创建 模板未渲染
  3. beforemount: 数据模型已创建 模板未渲染
  4. mouted :数据模型已创建 模板已渲染
  5. beforeupdate 数据模型已更新 模板未渲染
  6. updated 数据模型已更新 模板已渲染
  7. beforedistroy 销毁之前
  8. distroyed  已经销毁

4.使用Vue脚手架进行模块化开发

4.1 全局安装 webpack

npm install webpack -g

4.2 全局安装 vue 脚手架

npm install -g @vue/cli-init

4.3 初始化vue项目

vue init webpack vue-demo

4.4 启动vue项目

cd xxx
npm run dev

启动成功 

5. 路由 跳转

创建一个 hello.vue组件 在components文件夹下

<template><div><h1>你好 hello ,{{name}}</h1></div>
</template><script>
export default {data(){return{name:"张三"}}};
</script><style  ></style>

在route文件下的index.js写上路由controller

然后再App.vue 根组件下随便写个  就可以跳转了

<router-link to="/hello"> Go to Hello </router-link>

6.Vue整合 ElementUI快速开发

Element - The world's most popular Vue UI framework

6.1安装 element UI

npm i element-ui -S

6.2 引入Element

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.config.productionTip = false
Vue.use(ElementUI);
/* eslint-disable no-new */
new Vue({el: '#app',router,components: { App },template: '<App/>'
})
<template><div><h1>你好 hello ,{{ name }}</h1><el-radio v-model="radio" label="1">男生</el-radio><el-radio v-model="radio" label="2">女生</el-radio></div>
</template><script>
export default {data() {return {name: "张三",radio: "1",};},
};
</script><style  >
</style>

6.3 再举个例子

在element ui 导航栏上面跳转路由

<!--  -->
<template><div><el-table :data="tableData"><el-table-column prop="date" label="日期" width="140"></el-table-column><el-table-column prop="name" label="姓名" width="120"></el-table-column><el-table-column prop="address" label="地址"> </el-table-column></el-table></div>
</template><script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';export default {//import引入的组件需要注入到对象中才能使用components: {},props: {},data() {const item = {date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄'};return {tableData: Array(20).fill(item)}},//监听属性 类似于data概念computed: {},//监控data中的数据变化watch: {},//方法集合methods: {},//生命周期 - 创建完成(可以访问当前this实例)created() {},//生命周期 - 挂载完成(可以访问DOM元素)mounted() {},beforeCreate() {}, //生命周期 - 创建之前beforeMount() {}, //生命周期 - 挂载之前beforeUpdate() {}, //生命周期 - 更新之前updated() {}, //生命周期 - 更新之后beforeDestroy() {}, //生命周期 - 销毁之前destroyed() {}, //生命周期 - 销毁完成activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
};
</script>
<style  scoped>
</style>

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

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

相关文章

分布式任务队列:cppq

文章目录 简介FeaturesQuickstartExampleWeb UI命令行 参考 简介 cppq 是一个简单、可靠、高效的 C17 分布式任务队列。 cppq 是一个 C 库&#xff0c;用于对任务进行排队并与工作线程异步处理它们。它由 Redis 支持&#xff0c;旨在可扩展且易于入门。 cppq 工作原理&#x…

【QA】MySQL导出某数据库的所有数据为sql文件,包含建库命令、建表命令。

文章目录 前言Windows系统下 | mysqldump导出数据库数据Docker中导入初始化数据【补充】通过命令行&#xff0c;执行sql文件&#xff0c;将数据导入到数据库在MySQL外面执行在MySQL中执行 前言 我们在用docker部署mysql项目的时候&#xff0c;往往需要对数据库进行数据初始化。…

ARM 和 龙芯上 Arch Linux 安装手记

背景 今天尝试安装龙芯版 Linux,本来希望能安装 Debian 版,但只找到一些文档,没找到可安装版的 ISO。 后来顺着这篇文章找到了Arch Linux,就尝试安装了一下。 安装后发现竟然不会配置网络 😂。而且龙芯版由于是在 QEMU 虚拟机里,运行速度也较慢。所以,我想我需要先学…

Java-SSM电影在线播放系统

Java-SSM电影在线播放系统 1.服务承诺&#xff1a; 包安装运行&#xff0c;如有需要欢迎联系&#xff08;VX:yuanchengruanjian&#xff09;。 2.项目所用框架: 前端:JSP、layui等 后端:SSM,即Spring、SpringMvc、Mybatis等。 3.项目功能点: 3-1.后端功能: - 所有后台管理展…

rk3588内核添加特殊分辨率

rk平台内核本身默认支持一些常规的分辨率,如1920x1080@30,1280x720@60,但是往往不能满足需求,如有的客户需要你添加1020x700@35的分辨率,这时候就要自己加上去了。 下图是LCD各个参数对应的位置: 显示mode 各个参数含义如下: hdisplay:有效显示区水平像素数量,对应A…

Redis入门到实战-第十弹

Redis实战热身Geospatial篇 完整命令参考官网 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的&#xff08;采用BSD许可证&#xff09;&#xff0c;用作数据库、缓存、消息代…

Nginx配置文件中Location指令的匹配优先级

在 Nginx 中&#xff0c;当请求到达服务器时&#xff0c;会根据配置文件中的 location 指令来确定如何处理这个请求。location 指令有不同的匹配优先级&#xff0c;如下文所述。 location匹配优先级 精确匹配&#xff08;location /path&#xff09;&#xff1a;精确匹配优先…

C#手动改变自制窗体的大小

目录 1.Cursor类的Position属性 2.改变窗体大小的计算方法 3.Resources设计 &#xff08;1&#xff09;Resources资源图片管理 &#xff08;2&#xff09;GetObject方法设计 4.示例 当用户去除Winform窗体边框&#xff0c;自行设置窗体外观时&#xff0c;用户就不能使用W…

[综述笔记]Flexible large-scale fMRI analysis: A survey

论文网址&#xff1a;Flexible large-scale fMRI analysis: A survey | IEEE Conference Publication | IEEE Xplore 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff0…

关于网格数据导出指定格式的测试(以Gmsh导出nas格式为例)

本文主要讲述Gmsh如何导出nas格式的网格数据&#xff0c;众所周知&#xff0c;Gmsh可以导出多种网格数据格式&#xff0c;比如大家熟悉的msh、stl、inp、cgns&#xff08;似乎不完善&#xff09;等等&#xff0c;但是gmsh不支持nas格式的导出&#xff0c;只支持nas格式的导入&a…

银行量子金融系统应用架构设计

量子金融&#xff08;即Financial-Quantum&#xff0c;简称Fin-Q&#xff09;&#xff0c;特指量子科技在金融行业中的应用。 目前&#xff0c;量子科技中以量子保密通信、量子随机数和量子计算发展进度较快&#xff0c;取得了诸多阶段性重大技术突破和商用成果&#xff0c;这…

Linux Ncurses库部分函数使用说明

目录 1. initscr&#xff08;&#xff09;函数 2. endwin&#xff08;&#xff09;函数 3. curs_set()函数 4.noecho()函数 5. keypad()函数 6. start_color()函数 7.init_pair()函数 8.getch()函数 9.move()函数 10.addch()函数 11. refresh()函数 12.inch()函数…

1072. 按列翻转得到最大值等行数

文章目录 题意思路代码 题意 题目链接 可以翻转任意列&#xff0c;求全是1和全是0的行&#xff0c;最多有多少行。 思路 对一行而言&#xff0c;能翻转成相同的&#xff08;同为1&#xff0c;或者同为0&#xff09;&#xff0c;则相等。能反转成相反的&#xff0c;则巧好&am…

实战|使用 Node.js 和 htmx 构建全栈应用程序

在本教程中&#xff0c;我将演示如何使用 Node 作为后端和 htmx 作为前端来构建功能齐全的 CRUD 应用程序。这将演示 htmx 如何集成到全栈应用程序中&#xff0c;使您能够评估其有效性并确定它是否是您未来项目的不错选择。 htmx 是一个现代 JavaScript 库&#xff0c;旨在通过…

刘亦菲式能量保护法

➊睡到没有起床气才起来的10小时姑娘 有一次有人问刘亦菲有没有起床气&#xff0c;她调皮地回答&#xff1a;我一般都是睡到不气才起 没错&#xff0c;这位神仙姐姐连睡觉都是一种仙气 看回她以前的社交账号&#xff0c;不是在睡觉就是在赶往梦乡的路上&#xff0c;高铁上、房车…

多叉树题目:N 叉树的前序遍历

文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 解法三思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;N 叉树的前序遍历 出处&#xff1a;589. N 叉树的前序遍历 难度 3 级 题目…

vue/js总结合集

vuex的五大核心 内容作用映射位置调用其它state设置状态mapStatecomputedgetters获取内容mapGetterscomputed计算数据后返回mutations修改数据mapMutationsmethodscommit可以异步&#xff08;不建议&#xff09;不利于调试actions异步操作mapActionsmethodsdispatchmodules模块…

Docker 中安装 Redis

要在 Docker 中安装 Redis&#xff0c;你可以按照以下步骤进行操作&#xff1a; 拉取 Redis 镜像&#xff1a;在命令行中执行以下命令&#xff0c;从 Docker Hub 上拉取 Redis 镜像&#xff1a; docker pull redis 运行 Redis 容器&#xff1a;执行以下命令来在 Docker 中运行…

一文速通自监督学习(Self-supervised Learning):教机器自我探索的艺术

一文速通自监督学习&#xff08;Self-supervised Learning&#xff09;&#xff1a;教机器自我探索的艺术 前言自监督学习是什么&#xff1f;自监督学习的魔力常见的自监督学习方法1. 对比学习2. 预测缺失部分3. 旋转识别4. 时间顺序预测 结语 &#x1f308;你好呀&#xff01;…

蓝桥杯单片机快速开发笔记——特训1 LED闪烁和数码管同步显示

一、示例题目&#xff1a; 在CT107D单片机综合训练平台上&#xff0c;通过I/O模式编写代码&#xff0c;实现以下功能&#xff1a; 系统上电后&#xff0c;初始状态为关闭蜂鸣器、继电器、全部指示灯和数码管&#xff0c;然后进入循环&#xff0c;实现灯光闪烁和数码管计数。数…