Vue的局部使用

server/2024/11/19 2:10:33/

文章目录

      • 什么是Vue?
      • 局部使用Vue
        • 快速入门
      • 常用指令
        • v-for
        • v-bind
        • v-if & v-show
        • v-on
        • v-model
      • Vue生命周期
    • Axios
      • 案例

什么是Vue?

  • Vue是一款构建用户界面渐进式的JavaScript框架.
    在这里插入图片描述
    在这里插入图片描述

局部使用Vue

  • 快速入门
  • 常用指令
  • 声明周期
快速入门

准备:

  • 准备html页面,并引入Vue模块(官方提供)
  • 创建Vue程序的应用实例
  • 准备元素(div) ,被Vue控制

构建用户界面

  • 准备数据
  • 通过插值表达式渲染页面
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
<body><div id="app"><h1>{{msg}}</h1></div><div><h1>{{msg}}</h1> </div><!-- 引入vue模块 --><script type="module">javascript">import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'/* 创建vue的应用实例 */createApp({data() {return {//定义数据msg: 'hello vue3'}}}).mount("#app")</script></body>

常用指令

在这里插入图片描述

v-for

在这里插入图片描述
在这里插入图片描述

<body><div id="app"><table border="1 solid" colspa="0" cellspacing="0"><tr><th>文章标题</th><th>分类</th><th>发表时间</th><th>状态</th><th>操作</th></tr><!-- 那个元素要出现多次 v-for指令就添加到哪个元素上 --><tr v-for="(article,index) in articleList"><td>{{article.title}}</td><td>{{article.category}}</td><td>{{article.time}}</td><td>{{article.state}}</td><td><button>编辑</button><button>删除</button></td></tr></table></div><script type="module">javascript">//导入vue模块import { createApp } from'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建应用实例createApp({data() {return {//定义数据articleList: [{title: "医疗反腐绝非砍医护收入",category: "时事",time: "2023-09-5",state: "已发布"},{title: "中国男篮缘何一败涂地?",category: "篮球",time: "2023-09-5",state: "草稿"},{title: "华山景区已受大风影响阵风达7-8级,未来24小时将持续",category: "旅游",time: "2023-09-5",state: "已发布"}]}}}).mount("#app")//控制页面元素</script>
</body>

在这里插入图片描述

注意: 遍历的数组,必须在data中定义: 要想让哪个标签循环展示多次,就在那个标签上使用v-for 指令

v-bind

在这里插入图片描述
在这里插入图片描述

<body><div id="app"><!-- <a v-bind:href="url">黑马官网</a> --><a :href="url">黑马官网</a></div><script type="module">javascript">//引入vue模块import { createApp } from'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建vue应用实例createApp({data() {return {url: "https://www.itheima.com"}}}).mount("#app")//控制html元素</script>
</body>
v-if & v-show

应用: 大数据"杀手",如果我们网购都应该遇到过这种情况,大部分网购平台会对用户的消费水平做等级划分
在这里插入图片描述
在这里插入图片描述

<body><div id="app">手链价格为: <span v-if="customer.level>=0 && customer.level<=1">9.9</span><span v-else-if="customer.level>=2 && customer.level<=4">19.9</span><span v-else>29.9</span><br>手链价格为: <span v-show="customer.level>=0 && customer.level<=1">9.9</span><span v-show="customer.level>=2 && customer.level<=4">19.9</span><span v-show="customer.level>=5">29.9</span></div><script type="module">javascript">//导入vue模块import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建vue应用实例createApp({data() {return {customer: {name: "张三",level: 7}}}}).mount("#app")//控制html元素</script>
</body>

在这里插入图片描述在这里插入图片描述

v-on

在这里插入图片描述

<body><div id="app"><button v-on:click="money">点我有惊喜</button> &nbsp;<button @click="love">再点更惊喜</button></div><script type="module">javascript">//导入vue模块import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建vue应用实例createApp({data() {return {//定义数据}},methods: {money: function () {alert('送你钱100')},love: function () {alert('爱你一万年')}}}).mount("#app");//控制html元素</script>
</body>
v-model

在这里插入图片描述

<body><div id="app">文章分类: <input type="text" v-model="searchConditions.category" /><span>{{searchConditions.category}}</span>发布状态: <input type="text" v-model="searchConditions.state" /><span>{{searchConditions.state}}</span><button>搜索</button><button v-on:click="clear">重置</button><br /><br /><table border="1 solid" colspa="0" cellspacing="0"><tr><th>文章标题</th><th>分类</th><th>发表时间</th><th>状态</th><th>操作</th></tr><tr v-for="(article,index) in articleList"><td>{{article.title}}</td><td>{{article.category}}</td><td>{{article.time}}</td><td>{{article.state}}</td><td><button>编辑</button><button>删除</button></td></tr></table></div><script type="module">javascript">//导入vue模块import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建vue应用实例createApp({data() {return {//定义数据searchConditions: {category: '',state: ''},articleList: [{title: "医疗反腐绝非砍医护收入",category: "时事",time: "2023-09-5",state: "已发布"},{title: "中国男篮缘何一败涂地?",category: "篮球",time: "2023-09-5",state: "草稿"},{title: "华山景区已受大风影响阵风达7-8级,未来24小时将持续",category: "旅游",time: "2023-09-5",state: "已发布"}]}},methods: {clear: function () {//清空category以及state的数据//在methods对应的方法里面,使用this就代表的是vue实例,可以使用this获取到vue实例中准备的数据this.searchConditions.category = '';this.searchConditions.state = '';}}}).mount("#app")//控制html元素</script>
</body>

Vue生命周期

在这里插入图片描述
在这里插入图片描述

mounted: function () {console.log('vue 挂载完毕~')}

在这里插入图片描述
总结:
1.Vue生命周期总共分为几个阶段?
⇒ 八个阶段
2.Vue生命周期典型的应用场景?
页面加载完毕时,发起异步请求,加载数据,渲染页面.

Axios

我们前面说完Vue的生命周期挂载完毕之后,发送请求获取数据,这里介绍一个Ajax的一个函数库Axios.

  • 介绍:Axios对原生的Ajax进行了封装,简化书写,快速开发

在这里插入图片描述
在这里插入图片描述
后端代码:

@RestController
@RequestMapping("/article")
@CrossOrigin//支持跨域
public class ArticleController {private List<Article> articleList = new ArrayList<>();{articleList.add(new Article("医疗反腐绝非砍医护收入", "时事", "2023-09-5", "已发布"));articleList.add(new Article("中国男篮缘何一败涂地", "篮球", "2023-09-5", "草稿"));articleList.add(new Article("华山景区已受大风影响阵风达7-8级", "旅游", "2023-09-5", "已发布"));}//新增文章@PostMapping("/add")public String add(@RequestBody Article article) {articleList.add(article);return "新增成功";}//获取所有文章信息@GetMapping("/getAll")public List<Article> getAll(HttpServletResponse response) {return articleList;}//根据文章分类和发布状态搜索@GetMapping("/search")public List<Article> search(String category, String state) {return articleList.stream().filter(a -> a.getCategory().equals(category) && a.getState().equals(state)).collect(Collectors.toList());}
}

前端代码:

<body><!-- 引入axios --><script src="https://unpkg.com/axios/dist/axios.min.js"></script><script>javascript">// 发送请求axios({method: 'get',url: 'http://localhost:8080/article/getAll'}).then(result => {//成功的回调//result代表服务器响应的所有的数据,包含了响应头,响应体,result.data代表的是接口响应的核心数据console.log(result.data);}).catch(err => {//失败的回调console.log(err);});</script>
</body>

在这里插入图片描述
再来一个

<body><!-- 引入axios --><script src="https://unpkg.com/axios/dist/axios.min.js"></script><script>javascript">// 发送请求let = article = {title: "明天会更好",category: '生活',time: '2000-01-01',state: '草稿'}axios({method: 'post',url: 'http://localhost:8080/article/add',data: article}).then(result => {//成功的回调//result代表服务器响应的所有的数据,包含了响应头,响应体,result.data代表的是接口响应的核心数据console.log(result.data);}).catch(err => {//失败的回调console.log(err);});</script>
</body>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

案例

在这里插入图片描述

<body><div id="app">文章分类: <input type="text" v-model="searchConditions.category">发布状态: <input type="text" v-model="searchConditions.state"><button @click="search">搜索</button><br /><br /><table border="1 solid" colspa="0" cellspacing="0"><tr><th>文章标题</th><th>分类</th><th>发表时间</th><th>状态</th><th>操作</th></tr><tr v-for="(article,index) in articleList"><td>{{article.title}}</td><td>{{article.category}}</td><td>{{article.time}}</td><td>{{article.state}}</td><td><button>编辑</button><button>删除</button></td></tr></table></div><script src="https://unpkg.com/axios/dist/axios.min.js"></script><script type="module">javascript">//导入vue模块import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建vue应用实例createApp({data() {return {articleList: [],searchConditions: {category: "",state: ""}}},methods: {//声明方法search: function () {//发送请求,完成搜索axios.get("http://localhost:8080/article/search?category=" +this.searchConditions.category + "&state=" + this.searchConditions.state).then(result => {this.articleList = result.data;}).catch(err => {console.log(err);});}},//钩子函数mounted中,获取所有文章数据源mounted: function () {//发起异步请求 axiosaxios.get("http://localhost:8080/article/getAll").then(result => {// console.log(result.data)this.articleList = result.data}).catch(err => {console.log(err);});}}).mount("#app") //控制html元素</script></body>

http://www.ppmy.cn/server/143046.html

相关文章

golang HTTP基础

http.ListenAndServe http.ListenAndServe 是 Go 语言标准库 net/http 包中的一个函数&#xff0c;用于启动一个 HTTP 服务器并监听指定的端口&#xff0c;以便接收和处理来自客户端的 HTTP 请求。这个函数是构建 Web 服务器和 Web 服务的基础。 函数签名 func ListenAndSer…

室内定位论文精华-无人机与机器人在地下与室内环境中的自主导航与定位新技术

天文导航算法在低成本视觉系统中的应用 关键词 天文导航;自主无人机;GNSS拒止环境;稳定成像系统;星图识别;姿态估计;位置估算 研究问题 现代无人驾驶飞行器(UAV)中,很少使用天文学导航技术。传统的天文学导航依赖于稳定的成像系统,这不仅体积大且重量重,难以满足…

Linux:进程的优先级 进程切换

文章目录 前言一、进程优先级1.1 基本概念1.2 查看系统进程1.3 PRI和NI1.4 调整优先级1.4.1 top命令1.4.2 nice命令1.4.3 renice命令 二、进程切换2.1 补充概念2.2 进程的运行和切换步骤&#xff08;重要&#xff09; 二、Linux2.6内核进程O(1)调度队列&#xff08;重要&#x…

<Project-23 Navigator Portal> Python flask web 网站导航应用 可编辑界面:添加图片、URL、描述、位置移动

目的&#xff1a; 浏览器的地址簿太厚&#xff0c;如下图&#xff1a; 开始&#xff0c;想给每个 Web 应用加 icon 来提高辨识度&#xff0c;发现很麻烦&#xff1a;create image, resize, 还要挑来挑去&#xff0c;重复性地添加代码。再看着这些密密麻麻的含有重复与有规则的…

HbuilderX 插件开发-模板创建

实现思路 使用HbuilderX 打开某个文档时右键点击的时候获取当前打开的文档内容使用 API 替换为自己的模板 示例 package.json {"id": "SL-HbuilderX-Tool","name": "SL-HbuilderX-Tool","description": "快速创建h…

微信小程序自定义顶部导航栏(适配各种机型)

效果图 1.pages.js&#xff0c;需要自定义导航栏的页面设置"navigationStyle": "custom" 2.App.vue,获取设备高度及胶囊位置 onLaunch: function () {// 系统信息const systemInfo uni.getSystemInfoSync()// 胶囊按钮位置信息const menuButtonInfo uni.…

【免越狱】iOS砸壳 可下载AppStore任意版本 旧版本IPA下载

软件介绍 下载iOS旧版应用&#xff0c;简化繁琐的抓包流程。 一键生成去更新IPA&#xff08;手机安装后&#xff0c;去除App Store的更新检测&#xff09;。 软件界面 支持系统 Windows 10/Windows 8/Windows 7&#xff08;由于使用了Fiddler库&#xff0c;因此需要.Net环境…

excel-VLOOKUP函数使用/XVLOOKUP使用

多个窗口同时编辑表格&#xff0c;方便对照操作 使用开始-视图-新建窗口 将战区信息表的三列数据匹配到成交数据表上 可以使用VLOOKUP函数 有4个参数&#xff08;必须要查找的值&#xff0c; 要查找的区域&#xff0c;要返回区域的第几列数据&#xff0c;一个可选参数查找匹…