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

JavaWeb合集02-Vue基础内容

二、Vue基础内容

1、elementui-Dialog 对话框

通过 visible.sync 属性来控制弹窗显示和隐藏

<el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button>

<el-dialog
  title="提示"
  :visible.sync="dialogVisible"
  width="30%"
  :before-close="handleClose">
  <span>这是一段信息</span>
  <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
  </span>
</el-dialog>

2、elementui插槽

解决渲染数据时,得到的数据与要渲染的结果不一致的问题。

如:①数据库保存的性别用0和1表示,而要求渲染出来的结果是男和女。②数据库保存的是图片的链接,而渲染出来的要求是图片本身。

<template>
  <el-table  :data="tableData">
      
   <!--能直接展示的数据的,直接使用 prop属性展示数据-->
  <el-table-column   prop="name" label="姓名">
   </el-table-column>
      
        <!--需要转换后才能展示的数据使用 template插槽来转换-->
    <el-table-column  label="性别">
        <!--插槽转换-->
      <template slot-scope="scope">
      {{ scope.row.gender==1 ? "男":"女" }}
      </template>
    </el-table-column>
      
       <!--需要转换后才能展示的数据使用 template插槽来转换-->
   <el-table-column  label="图片">
        <!--插槽转换-->
      <template slot-scope="scope">
      <img :src="scope.row.img">
      </template>
    </el-table-column>
      
  </el-table>
</template>

<script>
  export default {
    data() {
      return {
        tableData: {
          name:"小明",
          gender: 1,
          img: 'https://s11.ax1x.com/2022/11/20/zMyrdS.jpg'
        }
      }
    }
  }
</script>

3、vue路由

前端路由: URL中的hash(#号之后的)与组件之间的对应关系。

介绍: Vue Router是Vue的官方路由。下面是它的3个部分

①VueRouter: 路由器类,根据路由请求在路由视图中动态渲染选中的组件

②: 请求链接组件,浏览器会解析成超链接标签

③: 动态视图组件,用来渲染展示与路由路径对应的组件

路由表配置模板(router/index.js)

//路由设置
const routes = [

  {
    //路由访问路径:根路径,
    path: '/',
    //路由名字
    name: 'Main',
    //导入并注册路由,路径为组件的位置
    component: () => import('../views/Main.vue'),
    //页面重定向,我们在访问根路径时,会跳转到 "/home” 路径访问对应的页面,这里就是在内容显示区加载首页的页面
    redirect:"/home",
    //子组件:这里是,Main组件下包含有 Home、User 子组件
    children:[
      //首页的路由信息
      {
        path: '/home',
        name: 'Home',
        meta:{
          //是否要验证"是"
          requireAuto:false
        },
        component: () => import('../pages/home/Home.vue'),
      },
      //用户管理路由的信息
      {
        path: '/user',
        name: 'User',
        meta:{
          //是否要验证"是"
          requireAuto:false
        },
        component: () => import('../pages/user/UserList.vue'),
      },
      {
        //权限管理
        path:"/purview",
        name:"Purview",
        meta:{
          requireAuto:false
        },
        component:()=>import('../pages/Purview.vue')
      },
        {
        //资源管理
          path:"/resource",
          name:"Resource",
          meta:{
            requireAuto:false
          },
          component:()=>import('../pages/resource/Resource.vue')
           },
           {
            //静态资源管理
              path:"/static",
              name:"StaticResource",
              meta:{
                requireAuto:false
              },
              component:()=>import('../pages/resource/StaticResource.vue')
           },
           {
            //动态资源管理
              path:"/trends",
              name:"TrendsResource",
              meta:{
                requireAuto:false
              },
              component:()=>import('../pages/resource/TrendsResource.vue')
           },{
            //用户反馈
              path:"/feedback",
              name:"Feedback",
              meta:{
                requireAuto:false
              },
              component:()=>import('../pages/Feedback.vue')
           },{
            //版本通知
              path:"/notice",
              name:"Notice",
              meta:{
                requireAuto:false
              },
              component:()=>import('../pages/Notice.vue')
           }       
    ]
  },
  
//和Main组件同级的登陆组件
{
  path:"/login",
  name:"Login",
  component:()=>import('../views/login/Login.vue')
}
]

const router = new VueRouter({
  routes
})


//这里设置路由拦截,验证session是否失效
router.beforeEach((to, from, next) => {
  if (to.meta.requireAuto) { //判断是否需要登录验证

      var uname= sessionStorage.getItem("uNum"); //这里是登录页面缓存的token
      if (uname == "0830") { //判断token等于时候就跳转路由
          next();//这个跳转是上面路由跳转
      }
      else { //token不一样时候就返回登录页面
          next({
              path: '/login',//返回登录界面
              // query: {redirect: to.fullPath}  
          })
      }
  }
  else {
      //如果不需要登录权限就直接跳转到该路由
      next();
  }
})

通过在侧边栏中添加标签来跳转到对应的组件中去

<!--跳转到用户管理组件-->
<router-link to="/user">用户管理</router-link>

在要动态渲染页面的地方添加标签即可

<router-view> </router-view>

4、打包部署

4.1 vue项目打包

vue项目通过nginx服务器来部署,可通过命令:npm run build 来打包项目,打包好的项目会放到dist目录下

4.1 nginx 介绍

Nginx是一 款轻 量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3) 代理服务器。其特点是占有内存少,并发能力强,在各大型互联网公司都有非常广泛的使用。

Nginx默认占用80端口号,如果80端口号被占用,可以在nginx.conf中修改端口号。

windos查看某个端口被哪些进程占用命令:netstat -ano | findStr 80

下载好的nginx压缩包里面的重要目录介绍:

  1. conf:配置文件目录
  2. html:静态资源文件目录
  3. logs:日志文件目录
  4. temp:临时文件目录
  5. nginx.exe:启动程序文件

部署步骤:

  1. 下载好nginx压缩包,并解压到无中文的目录下。
  2. 将vue打包好的全部文件拷贝到html目录下。
  3. 去nginx配置文件 ngin.conf中的第36行,将默认的80端口改为其它端口号(防止与其它进程端口冲突)
  4. 双击nginx.exe启动文件,可以去进程看一下是否启动成功。
  5. 去浏览器中输入localhost:端口号,访问试试。

http://www.kler.cn/a/354883.html

相关文章:

  • 探秘仓颉编程语言:使用体验与功能剖析
  • Mac 查询IP配置,网络代理
  • 【ES6复习笔记】解构赋值(2)
  • 300多种复古手工裁剪拼贴艺术时尚字母、数字、符号海报封面Vlog视频MOV+PNG素材
  • YOLOv9-0.1部分代码阅读笔记-benchmarks.py
  • 全国硕士研究生入学考试(考研)常识详解之初试科目:政治、外语、数学与专业课
  • 虚拟化桌面
  • Parasoft C/C++test CT 荣获TÜV SÜD认证,在安全关键应用开发与验证方面达到最佳实践标准
  • 空间解析几何 3:空间点到线段和平面的距离【附MATLAB代码】
  • 面对专利档案管理难题,我们该怎么办?
  • 用Java爬虫API,轻松获取电商商品SKU信息
  • 怎么在地图导航上添加自己的店面定位?
  • Centos7默认的python版本是2.7,现在很多新开发的python均需要3.X以上。下面升级centos的预装python版本到最新。
  • Python123练习题
  • Python网络爬虫:分析淘宝商品热度与销量[进阶深度优化]
  • 查看SQL执行计划 explain
  • learn C++ NO.26——哈希应用
  • 低代码可视化-uniapp购物车页面-代码生成器
  • Scala中reduce函数
  • 每天一个数据分析题(五百零七)- 集成学习算法
  • 【牛客刷题】笔记1
  • AI大模型:开启智能革命新纪元
  • CountUp.js 实现数字增长动画 Vue
  • AsyncTask的工作原理和缺陷
  • 供应链大变革:低代码技术助力企业数字化转型!
  • ES6扩展运算符