当前位置: 首页 > wzjs >正文

寿光网站建设多少钱wordpress添加图片不显示

寿光网站建设多少钱,wordpress添加图片不显示,四川省城市建设培训中心 网站,软件开发公司网站模板Vue.js核心功能实现1. 数据绑定与响应式 Vue.js的核心特性之一是数据绑定。在我们的代码中&#xff0c;我们使用v-model实现了表单元素与Vue实例数据的双向绑定&#xff1a; <input type"text" id"name" v-model"searchForm.name" placehol…

Vue.js核心功能实现1. 数据绑定与响应式

Vue.js的核心特性之一是数据绑定。在我们的代码中,我们使用v-model实现了表单元素与Vue实例数据的双向绑定:

<input type="text" id="name" v-model="searchForm.name" placeholder="输入名字">
<select id="gender" v-model="searchForm.gender"><option value="">全部</option><option value="1">男</option><option value="0">女</option>
</select>
 

对应的Vue实例数据:

data() {return {searchForm: {name: '',gender: '',job: ''},emplist: [],filteredEmployees: []};
}

2. 条件渲染

我们使用了两种方式实现条件渲染:

  1. v-if/v-else-if/v-else(注释掉的代码):

<span v-if="e.job === 1">班主任</span>
<span v-else-if="e.job === 2">讲师</span>
<span v-else-if="e.job === 3">助理</span>
<span v-else>其他</span>
  1. v-show(实际使用的代码):

<span v-show="e.job === 1">班主任</span>
<span v-show="e.job === 2">讲师</span>
<span v-show="e.job === 3">助理</span>
<span v-show="!(e.job === 1 || e.job === 2 || e.job === 3)">其他</span>

两者的区别在于:

  • v-if是真正的条件渲染,元素会被完全添加或移除DOM

  • v-show只是简单地切换CSS的display属性,元素始终存在于DOM中

3. 列表渲染

使用v-for指令动态生成表格行:

<tr v-for="(e, index) in filteredEmployees" :key="e.id"><td>{{index + 1}}</td><td>{{e.name}}</td><td>{{e.age}}</td><td>{{e.gender === 1 ? '男' : '女'}}</td><td><img class="avatar" :src="e.avatar" :alt="e.name" width="50"></td><!-- 其他列 -->
</tr>
 

注意:key的使用,它为每个节点提供唯一标识,帮助Vue高效地重新渲染列表。

4. 事件处理

搜索按钮使用了v-on:click(可以简写为@click)绑定点击事件:

<button type="button" v-on:click="filterEmployees">搜索</button>

对应的Vue方法:

methods: {async filterEmployees() {try {const response = await axios.get(`https://web-server.itheima.net/emps/list?name=${this.searchForm.name}&gender=${this.searchForm.gender}&job=${this.searchForm.job}`);this.emplist = response.data.data;this.filteredEmployees = this.emplist;} catch (error) {console.error('Failed to fetch employees:', error);}}
}

5. 生命周期钩子

使用mounted生命周期钩子在组件挂载后自动加载数据:

mounted() {// 初始化时加载所有员工信息this.filterEmployees();
}
 

异步数据获取

我们使用axios库进行HTTP请求,并结合async/await语法处理异步操作:

async filterEmployees() {try {const response = await axios.get(`https://web-server.itheima.net/emps/list?name=${this.searchForm.name}&gender=${this.searchForm.gender}&job=${this.searchForm.job}`);this.emplist = response.data.data;this.filteredEmployees = this.emplist;} catch (error) {console.error('Failed to fetch employees:', error);}
}

样式与布局

虽然CSS部分没有展示,但HTML中已经包含了一些基本的类名和结构,如avatar类用于头像图片的样式:

<img class="avatar" :src="e.avatar" :alt="e.name" width="50">
 

可扩展功能

当前系统还有一些可以扩展的功能点:

  1. 实现删除和添加按钮的功能

  2. 添加分页功能

  3. 实现排序功能

  4. 添加编辑功能

  5. 优化移动端显示

总结

通过这个简单的项目,我们学习了Vue.js的多个核心概念:

  • 数据绑定(v-model)

  • 条件渲染(v-if/v-show)

  • 列表渲染(v-for)

  • 事件处理(v-on/@)

  • 生命周期钩子(mounted)

  • 异步操作(async/await)

这些概念是Vue.js开发的基础,掌握了它们,你就可以开始构建更复杂的Vue应用了。

完整的代码可以在文章开头的HTML文件中找到,你可以将其保存为HTML文件直接在浏览器中打开运行(需要联网以加载Vue和axios库)。

希望这篇博客对你学习Vue.js有所帮助!如果有任何问题或建议,欢迎在评论区留言讨论。

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>人员信息表</title><link rel="stylesheet" href="styles.css">
</head>
<body><div id="app"><!-- 搜索表单区域 --><form id="search-form"><label for="name">名字:</label><input type="text" id="name" v-model="searchForm.name" placeholder="输入名字"><label for="gender">性别:</label><select id="gender" v-model="searchForm.gender"><option value="">全部</option><option value="1">男</option><option value="0">女</option></select><label for="job">职位:</label><select id="job" v-model="searchForm.job"><option value="">全部</option><option value="1">班主任</option><option value="2">讲师</option><option value="3">助理</option></select><button type="button" v-on:click="filterEmployees">搜索</button><!-- </form>                     // @click --><table><thead><!-- thead 表示表格中的表头 --><tr><!-- tr 表示表格中的行 ,一个tr就是一行--><!-- th 表示表格中的表头单元格,会加粗 --><th>序号</th><th>姓名</th><th>年龄</th><th>性别</th><th>头像</th><th>职位</th><th>操作</th></tr></thead><tbody><tr v-for="(e, index) in filteredEmployees" :key="e.id"><td>{{index + 1}}</td><td>{{e.name}}</td><td>{{e.age}}</td><td>{{e.gender === 1 ? '男' : '女'}}</td><td><img class="avatar" :src="e.avatar" :alt="e.name" width="50"></td><td><!-- 修正 v-if、v-else-if 和 v-else 指令的使用 --><!-- <span v-if="e.job === 1">班主任</span><span v-else-if="e.job === 2">讲师</span><span v-else-if="e.job === 3">助理</span><span v-else>其他</span> --><!-- 使用 v-show 指令实现条件渲染 ,为true时显示,为false时隐藏,用在频繁切换的场景--><span v-show="e.job === 1">班主任</span><span v-show="e.job === 2">讲师</span><span v-show="e.job === 3">助理</span><span v-show="!(e.job === 1 || e.job === 2 || e.job === 3)">其他</span></td></td><td><!-- 这里删除按钮无法实现动态删除功能,仅作展示 --><button>删除</button><button>添加</button></td></tr></tbody></table></div><footer><p>北京大学</p><p>邮箱:pku@edu.cn  电话:010 - 12345678</p></footer><!-- 引入 Vue 3 库 --><script src="https://unpkg.com/vue@3/dist/vue.global.js"></script><!-- 引入 axios --><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script>const { createApp } = Vue;createApp({data() {return {searchForm: {name: '',gender: '',job: ''},  emplist: [],filteredEmployees: []};},mounted() {//生命周期钩子函数,在组件挂载到 DOM 后执行。// 初始化时加载所有员工信息this.filterEmployees();},methods: {async filterEmployees() { //async函数用于定义异步函数,它返回一个Promise对象,表示异步操作的结果。try {               //await关键字,用于等待一个异步操作完成,然后获取其结果。让异步变成同步const response = await axios.get(`https://web-server.itheima.net/emps/list?name=${this.searchForm.name}&gender=${this.searchForm.gender}&job=${this.searchForm.job}`);this.emplist = response.data.data;this.filteredEmployees = this.emplist;} catch (error) {console.error('Failed to fetch employees:', error);}}}}).mount('#app');</script>
</body></html>


文章转载自:

http://ztOyXmFn.rfxyk.cn
http://Q8MCmPa4.rfxyk.cn
http://5r6Lzgbk.rfxyk.cn
http://w9ZuVecH.rfxyk.cn
http://ZOErafMb.rfxyk.cn
http://FGMggCjt.rfxyk.cn
http://vzQ91F1W.rfxyk.cn
http://xv2SaSPi.rfxyk.cn
http://0jjV93jd.rfxyk.cn
http://tandabQv.rfxyk.cn
http://Z4ZcbfsY.rfxyk.cn
http://D2VTZP0d.rfxyk.cn
http://d9FuUH5K.rfxyk.cn
http://qJzs9iy2.rfxyk.cn
http://dTHMLiW4.rfxyk.cn
http://zBQxXcIT.rfxyk.cn
http://A245E94A.rfxyk.cn
http://Qe78Y7H4.rfxyk.cn
http://urj5r0JD.rfxyk.cn
http://3YxpNf6P.rfxyk.cn
http://pXNCoXxO.rfxyk.cn
http://hXVA5YJ5.rfxyk.cn
http://JOlsVwDQ.rfxyk.cn
http://IWJ6DC9H.rfxyk.cn
http://oPRyplLG.rfxyk.cn
http://hxeUhavq.rfxyk.cn
http://Is36c6gr.rfxyk.cn
http://w2zOlHBl.rfxyk.cn
http://5nPUiFuP.rfxyk.cn
http://GWLaSzLr.rfxyk.cn
http://www.dtcms.com/wzjs/756466.html

相关文章:

  • 垂直门户网站企业网站建设中图片优化的方法
  • 惠州做棋牌网站建设多少钱个人网站论文结束语
  • 新手什么网站做外贸成都网络推广公司排行榜
  • 做ppt用什么网站好深圳宝安seo外包
  • 什么做直播网站企业网站报价方案下载
  • 铁岭开原网站建设wordpress页面背景颜色
  • 怎么给网站做二维码中山家居企业网站建设
  • 营销网站html衡阳高端网站建设
  • 中山英文网站建设响应式布局网站建设
  • 公司网站建设小知识链接买卖是什么意思
  • 怎么做外贸网站免费网络加速器永久免费版
  • 医药公司网站备案做建材的网站有哪些
  • wordpress 企业站点免费手机网站app
  • 网站开发平台的定义网站建设建设公司有哪些
  • 长春火车站时刻表软文范例100例
  • 想学做网站学什么教程做国外销售都上什么网站
  • 第一个做装修的网站注册域名的网站有哪些
  • 做一个网站人员做网站三剑客
  • 自然堂官方网站建设新北仑网站怎么做的
  • 一个网站的建设流程有哪些安徽网架公司
  • 投资网站网站源码修改wordpress主体字体
  • 哪里帮做企业网站wordpress数据库字典
  • 基于html5的移动端网站开发wordpress安装404
  • 北京做网站开发公司电话网站建设销售招聘
  • 如何做一个自己的网页seo在线优化网站
  • 郑州网站南京网站建设工程公司管理软件
  • 怎么做关于狗的网站做视频网站的流程
  • 中国建设银行公司网站官网返利导购网站建设需求文档
  • 外贸网站建设公司价位wordpress 好看的主题
  • 仿快递网站源码wordpress源码下载模板