您的位置: 首页 - 站长

php网站程序怎么安装网页版梦幻西游杨洋兑换码是多少

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

php网站程序怎么安装,网页版梦幻西游杨洋兑换码是多少,景安网站上传完还要怎么做,平面设计免费软件目录 一、Mock.js 1.1 mockjs介绍 1.2 mock.js安装与配置 1.2.1 安装mock.js 1.2.2 引入mock.js 1.3 mock.js的使用 1.3.1 准备模拟数据 1.3.2 定义拦截路由 1.3.3 测试 二、首页导航栏左侧菜单搭建 2.1 自定义界面组件 (完整代码) 2.2 配置路由 2.3 组件显示折叠和…目录 一、Mock.js 1.1 mockjs介绍 1.2 mock.js安装与配置 1.2.1 安装mock.js 1.2.2 引入mock.js 1.3 mock.js的使用 1.3.1 准备模拟数据 1.3.2 定义拦截路由 1.3.3 测试 二、首页导航栏左侧菜单搭建 2.1 自定义界面组件 (完整代码) 2.2 配置路由 2.3 组件显示折叠和展示图标 2.4 总线完成组件通信 2.5 效果展示 一、Mock.js 1.1 mockjs介绍 Mock.js是一个用于生成随机数据和模拟接口请求的JavaScript库。它可以帮助开发人员在前端开发过程中模拟后端接口的返回数据以便进行前端页面的开发和测试。 Mock.js有两个重要的特性风靡前端: 数据类型丰富         Mock.js提供了一套简单易用的API可以用于生成各种类型的随机数据如字符串、数字、布尔值、日期等。开发人员可以使用Mock.js定义接口的返回数据结构并生成符合该结构的随机数据。 拦截Ajax请求         通过拦截Ajax请求Mock.js可以截获前端发送的请求并根据预先定义的规则返回模拟的数据。延时响应功能可以模拟网络延迟以便测试页面在不同网络条件下的表现。动态数据生成功能可以根据请求参数生成符合条件的随机数据。不需要修改既有代码就可以拦截Ajax请求返回模拟的响应数据。 1.2 mock.js安装与配置 1.2.1 安装mock.js npm i mockjs -D tips在前面也讲到了-S,-G两种命令行的选项这里综合讲解一下这三种的区别 -S选项用于启动开发服务器-D选项用于在启动开发服务器后自动打开浏览器-G选项用于生成代码或文件。它们分别用于不同的开发场景和需求具体使用取决于你的目标和任务。 1.2.2 引入mock.js 为了只在开发环境使用mock而打包到生产环境时自动不使用mock我们可以在config目录中的dev.env.js和 prod.env.js做一个配置如下 dev.env.js 生产环境
/* 开发环境 / use strict const merge require(webpack-merge) const prodEnv require(./prod.env)module.exports merge(prodEnv, {NODE_ENV: development,MOCK: ture })prod.env.js开发环境
/
生产环境 / use strict module.exports {NODE_ENV: production,MOCK: false }main.js
//开发环境下才会引入mockjs process.env.MOCK require(/mock) 1.3 mock.js的使用 1.3.1 准备模拟数据 为每个
.vue定义单独的xxx-mock.js文件并在其中添加自定义的json数据还可以通过mockjs的模块生成随机数据信息动态测试ajax请求效果。 创建src/mock/json目录定义登录测试数据文件login-mock.js //在没有使用mock.js前定义数据的方式死数据 /* const loginInfo {code: -1,message: 密码错误 } ///使用mockjs的模板生成随机数据 const loginInfo {//1表示50%概率success|1: true,//2-3指重复2到3次msg|2-3: msg }//将当前模块导出导出后index.js才可以导入 export default loginInfo;面试题js中const,var,let区别分别写一个例子  1.变量提升var存在变量提升而let与const不存在变量提升即在变量只能在声明之后使用否在会报错。 2.重复声明var定义的变量可以声明多次const和let不允许重复声明变量 3.给全局添加属性浏览器的全局对象是windowNode的全局对象是global。var声明的变量为全局变量并且会将该变量添加为全局对象的属性但是let和const不会。 4.暂时性死区 在使用let、const命令声明变量之前该变量都是不可用的。这在语法上称为暂时性死区。使用var声明的变量不存在暂时性死区。 5.初始值设置 在变量声明时var 和 let 可以不用设置初始值。而const声明变量必须设置初始值。 6.块级作用域 块作用域由 { }包括let和const具有块级作用域var不存在块级作用域。块级作用域解决了ES5中的两个问题 内层变量可能覆盖外层变量用来计数的循环变量泄露为全局变量 1.3.2 定义拦截路由 在src目录下创建mock目录定义mock主文件index.js并在该文件中定义拦截路由配置/src/mock/index.js。 import Mock from mockjs //引入mockjsnpm已安装 import action from /api/action //引入请求地址//全局设置设置所有ajax请求的超时时间模拟网络传输耗时 Mock.setup({// timeout: 400 //延时400s请求到数据timeout: 200 - 400 //延时200-400s请求到数据 })//获取请求的url let url action.getFullPath(SYSTEM_USER_DOLOGIN); //引登陆的测试数据并添加至mockjs import loginInfo from /mock/json/login-mock.js Mock.mock(url, post, loginInfo)//如果请求既可以是get又可以是post的请求方式可以使用如下方式 // Mock.mock(s1, /post|get/i, loginInfo)1.3.3 测试 编辑Login.vue文件根据不同响应给出不同提示。 templatediv classlogin-wrapel-form classlogin-containerh1 classtitle用户登录/h1el-form-item labelel-input typetext v-modelusername placeholder登录账号 autocompleteoff/el-input/el-form-itemel-form-item labelel-input typepassword v-modelpassword placeholder登录密码 autocompleteoff/el-input/el-form-itemel-form-itemel-button typewarning stylewidth:100%; clickdoSubmit()提交/el-button/el-form-itemel-row styletext-align: center;margin-top:-10pxel-link typeprimary忘记密码/el-linkel-link typeprimary clickgotoRegister()用户注册/el-link/el-row/el-form/div /templatescriptexport default {name: Login,data() {return {username: ,password: }},methods: {gotoRegister() {this.$router.push(/Register);},doSubmit() {//定义后台登录方法连接地址let url this.axios.urls.SYSTEM_USER_DOLOGIN;//获取数据let params {username: this.username,password: this.password};/ get请求进行参数传递 /this.axios.get(url, {params: params}).then(r {console.log®;//提示成功和失败主要演示获取响应数据的方法if (r.data.success) {//可以到element-ui官网查看用法this.\(message({message: 登录成功,type: success});}else{this.\)message({message: 登录失败,type: error});}}).catch(e {//异常信息});}}} /scriptstyle scoped.login-wrap {box-sizing: border-box;width: 100%;height: 100%;padding-top: 10%;background-image: url(/static/imgs/books2.jpg);/ background-color: #3b7cf5; */background-repeat: no-repeat;background-position: center right;background-size: 100%;}.login-container {border-radius: 10px;margin: 0px auto;width: 350px;padding: 30px 35px 15px 35px;border: 1px solid #eaeaea;text-align: left;background-color: rgba(229, 229, 229, 0.8);}.title {margin: 0px auto 40px auto;text-align: center;color: #0b0b0b;} /style这样就不需要跟后台进行交互通过mock.js模拟数据进行功能测试。 二、首页导航栏左侧菜单搭建 2.1 自定义界面组件 (完整代码)

  1. AppMain.vue 界面总容器 templateel-container classmain-containerel-aside v-bind:classasideClassLeftNav/LeftNav/el-asideel-containerel-header classmain-headerTopNav/TopNav/el-headerel-main classmain-center首页/el-main/el-container/el-container /templatescript// 导入组件import TopNav from /components/TopNav.vueimport LeftNav from /components/LeftNav.vue// 导出模块export default {//组件名称name: AppMain,data: function() {return {asideClass: main-aside,}},//将import的组件定义的Main中以便于使用components: {TopNav,LeftNav},created() {this.\(root.Bus.\)on(aaa, r {this.asideClass r ? main-aside-collapsed : main-aside;});}}; /script style scoped.main-container {height: 100%;width: 100%;box-sizing: border-box;}.main-aside-collapsed {/* 在CSS中通过对某一样式声明! important 可以更改默认的CSS样式优先级规则使该条样式属性声明具有最高优先级 /width: 64px !important;height: 100%;background-color: #e2b100;margin: 0px;}.main-aside {width: 240px !important;height: 100%;background-color: #e2b100;margin: 0px;}.main-header,.main-center {padding: 0px;border-left: 2px solid #dedede;} /style2. LegtNav.vue 左侧菜单 templateel-menu default-active2 classel-menu-vertical-demo background-color#ffbf00 text-color#fffactive-text-color#ffd04b :collapsecollapseddiv classlogoboximg classlogoimg src../assets/imgs/logo.png alt/divel-submenu index1template slottitlei classel-icon-location/ispan导航一/span/templateel-menu-item-grouptemplate slottitle分组一/templateel-menu-item index1-1选项1/el-menu-itemel-menu-item index1-2选项2/el-menu-item/el-menu-item-groupel-menu-item-group title分组2el-menu-item index1-3选项3/el-menu-item/el-menu-item-groupel-submenu index1-4template slottitle选项4/templateel-menu-item index1-4-1选项1/el-menu-item/el-submenu/el-submenuel-menu-item index2i classel-icon-menu/ispan slottitle导航二/span/el-menu-itemel-menu-item index3 disabledi classel-icon-document/ispan slottitle导航三/span/el-menu-itemel-menu-item index4i classel-icon-setting/ispan slottitle导航四/span/el-menu-item/el-menu /template scriptexport default {name: LeftNav,data: function() {return {collapsed: false}},created() {this.\(root.Bus.\)on(aaa, r {this.collapsed r;});}} /script style.el-menu-vertical-demo:not(.el-menu–collapse) {width: 240px;min-height: 400px;}.el-menu-vertical-demo:not(.el-menu–collapse) {border: none;text-align: left;}.el-menu-item-group__title {padding: 0px;}.el-menu-bg {background-color: #ffbf00 !important;}.el-menu {border: none;}.logobox {height: 40px;line-height: 40px;color: #9d9d9d;font-size: 20px;text-align: center;padding: 20px 0px;}.logoimg {height: 40px;} /style3. TopNav.vue 顶部导航栏 templateel-menu classel-menu-demo modehorizontal background-color#ffbf00 text-color#fff active-text-color#fffel-button classbuttonimgimg classshowimg :srccollapsed?imgshow:imgsq clickdoToggle()/el-buttonel-submenu index2 classsubmenutemplate slottitle超级管理员/templateel-menu-item index2-1设置/el-menu-itemel-menu-item index2-2个人中心/el-menu-itemel-menu-item clickexit() index2-3退出/el-menu-item/el-submenu/el-menu /templatescriptexport default {name: TopNav,data: function() {return {collapsed: false,//require是node中遵循CommonJS规范的模块化解决方案,支持动态引入imgshow: require(/assets/imgs/show.png),imgsq: require(/assets/imgs/sq.png)}},methods: {doToggle() { //收起左侧菜单事件this.collapsed !this.collapsed;//将是否折叠的变量放入总线this.\(root.Bus.\)emit(aaa, this.collapsed);},exit() { //退出事件//跳转登录界面this.$router.push(/)}}} /scriptstyle scoped.el-menu-vertical-demo:not(.el-menu–collapse) {border: none;}.submenu {float: right;}.buttonimg {height: 60px;background-color: transparent;border: none;}.showimg {width: 26px;height: 26px;position: absolute;top: 17px;left: 17px;}.showimg:active {border: none;} /style2.2 配置路由 router/index.js 配置路由前先导入Main组件 import AppMain from /components/AppMain import LeftNav from /components/LeftNav import TopNav from /components/TopNav 将LeftNav和TopNav子组件配置到AppMain总容器中 export default new Router({routes: [{path: /,name: Login,component: Login},{path: /AppMain,name: AppMain,component: AppMain,children:[{path: /LeftNav,name: LeftNav,component: LeftNav},{path: /TopNav,name: TopNav,component: TopNav}]}] }) 2.3 组件显示折叠和展示图标 TopNav.vue  LeftNav.vue  2.4 总线完成组件通信 如果要完成组件整合需要通过定义总线将父组件AppMain与子组件进行通信 src/mai.js new Vue({el: #app,data() {return {/ 创建一个Bus总线 */Bus: new Vue()}},router,components: {App},template: App/ }) TopNav.vue  把是否折叠的变量放入总线中方便其他组件调取。  LeftNav 在组件创建时订阅了一个名为 aaa 的事件并在事件触发时将接收到的数据赋值给 collapsed 属性。 AppMain.vue 在组件创建时订阅了一个名为 aaa 的事件并在事件触发时将接收到的数据赋值给 asideClass属性通过true或false赋予相应的样式。 2.5 效果展示