vue07---elementui使用/

news2024/11/27 8:43:47

elementui使用

cnpm isntall -S element-ui@2.9

<template>
  <div>
    <h1>按钮的使用</h1>
    <el-button-group>
      <el-button type="primary" icon="el-icon-edit"></el-button>
      <el-button type="primary" icon="el-icon-share" @click="handleClick"></el-button>
      <el-button type="primary" icon="el-icon-delete"></el-button>
    </el-button-group>
    <hr>

    <h1>带链接的文字</h1>
    <div>
      <el-link href="https://element.eleme.io" target="_blank" type="danger">点我看美女</el-link>
    </div>

    <h1>Radio单选</h1>
    <el-radio v-model="radio" label="1">男</el-radio>
    <el-radio v-model="radio" label="2">女</el-radio>

    <h1>input</h1>
    <div style="margin-top: 15px;">
      <el-input placeholder="请输入内容" v-model="input3" class="input-with-select">
        <el-select v-model="select" slot="prepend" placeholder="请选择" style="width: 130px">
          <el-option label="餐厅名" value="1"></el-option>
          <el-option label="订单号" value="2"></el-option>
          <el-option label="用户电话" value="3"></el-option>
        </el-select>
        <el-button slot="append" icon="el-icon-search" @click="handleClick2"></el-button>
      </el-input>
    </div>


    <h1>表格</h1>
    <el-table
        :data="tableData"
        stripe
        style="width: 100%">
      <el-table-column
          prop="date"
          label="日期"
          width="180">
      </el-table-column>
      <el-table-column
          prop="name"
          label="姓名"
          width="180">
      </el-table-column>
      <el-table-column
          prop="address"
          label="地址">
      </el-table-column>
    </el-table>

    <h1>message消息提示</h1>
    <el-button :plain="true" @click="open4">错误</el-button>
  </div>
</template>

<script>
export default {
  name: "ElementuiView",
  data() {
    return {
      radio: '1',
      input3: '',
      select: '',
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1517 弄'
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1519 弄'
      }, {
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1516 弄'
      }]
    }
  },
  methods: {
    handleClick() {
      location.href = 'http://www.baidu.com'
    },
    handleClick2() {
      console.log(this.select)
      console.log(this.input3)
    },
    open4() {
      this.$message({
        message: '恭喜你,这是一条成功消息',
        type: 'success'
      });
    }
  }
}
</script>

<style scoped>

.input-with-select .el-input-group__prepend {
  background-color: #fff;
}
</style>

vuex使用

概念

# vuex :状态管理器---》存数据(变量)的地方,所有组件都可以操作
在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信
 

http://photo.liuqingzheng.top/2022%2010%2030%2003%2003%2007%20/fc15b1f552b1465db223ff7abf8e0425.pngicon-default.png?t=N4P3http://photo.liuqingzheng.top/2022%2010%2030%2003%2003%2007%20/fc15b1f552b1465db223ff7abf8e0425.png搭建vuex环境

创建文件:src/store/index.js

   //引入Vue核心库
   import Vue from 'vue'
   //引入Vuex
   import Vuex from 'vuex'
   //应用Vuex插件
   Vue.use(Vuex)
   
   //准备actions对象——响应组件中用户的动作
   const actions = {}
   //准备mutations对象——修改state中的数据
   const mutations = {}
   //准备state对象——保存具体的数据
   const state = {}
   
   //创建并暴露store
   export default new Vuex.Store({
   	actions,
   	mutations,
   	state
   })

main.js中创建vm时传入store配置项

   ......
   //引入store
   import store from './store'
   ......
   
   //创建vm
   new Vue({
   	el:'#app',
   	render: h => h(App),
   	store
   })

基本使用

初始化数据、配置actions、配置mutations,操作文件store.js

   //引入Vue核心库
   import Vue from 'vue'
   //引入Vuex
   import Vuex from 'vuex'
   //引用Vuex
   Vue.use(Vuex)
   
   const actions = {
       //响应组件中加的动作
   	jia(context,value){
   		// console.log('actions中的jia被调用了',miniStore,value)
   		context.commit('JIA',value)
   	},
   }
   
   const mutations = {
       //执行加
   	JIA(state,value){
   		// console.log('mutations中的JIA被调用了',state,value)
   		state.sum += value
   	}
   }
   
   //初始化数据
   const state = {
      sum:0
   }
   
   //创建并暴露store
   export default new Vuex.Store({
   	actions,
   	mutations,
   	state,
   })

组件中读取vuex中的数据:$store.state.sum

组件中修改vuex中的数据:$store.dispatch('action中的方法名',数据)或 $store.commit('mutations中的方法名',数据)

备注:若没有网络请求或其他业务逻辑,组件中也可以越过actions,即不写dispatch,直接编写commit

<template>
  <div>

    <hr>
    {{sum}}
    <button @click="handleClick">点我</button>
  </div>
</template>

<script>

export default {
  name: "App",
  data() {
    return {
      v:'xxx',
      sum:this.$store.state.sum
    };
  },
  methods:{
    handleClick(){
      // action中的方法名
      // this.$store.dispatch('jia',2)
      // console.log(this.$store.state.sum)

      //mutations中的方法名
      this.$store.commit('JIA',4)
      console.log(this.$store.state.sum)
    }
  }
};
</script>


Router使用

# 提倡单页面应用,需要做页面的跳转----》借助于Router实现页面组件的跳转


# 1 简单使用
	-页面跳转(咱们之前学过了)
    -写个页面组件
    -在router--->index.js--->routes数组中加入一个路由即可
    
# 2 组件中实现页面跳转
	-两种方式
    	-方式一:使用 router-link 标签,to 地址
         	<router-link to="/about"></router-link>
		-方式二:js控制
        	this.$router.push('/about')
            
            
            
# 3 路由跳转时,可以使用对象
	-1  通过对象跳转路由name形式: <router-link :to="{name:'about'}">
	-2 通过对象跳转路由path形式: <router-link :to="{path:'/about'}">
    -3 对象中可以有query属性,是个对象类型,会把里面的key-value拼到路径后面
    -4 在另一个页面中取出地址栏中数据:console.log(this.$route.query)
    -5 这种传递方式和 3  一样 <router-link to="/about?name=lqz&age=19">
    -6 注意区分:
    	this.$route:当前路由对象,当前路径,取传递数据。。。
        this.$router:整个路由对象,主要做跳转用
        
    -7 路径中分割出 参数
    	-配置:    
        	{
            path: '/detail/:pk',
            name: 'detail',
            component: DetailView
        	},
        -在路由中取:
        	this.$route.params.pk
            
    -8 路由跳转时,使用 7 的样子
    	-this.$router.push({name: 'detail', params: {pk: 999}})
        -<router-link :to="{name:'detail',params:{pk:88}}">
        
        
 # 4 this.router 的一些方法
    this.$router.push(path): 相当于点击路由链接(可以返回到当前路由界面)
    this.$router.replace(path): 用新路由替换当前路由(不可以返回到当前路由界面)
    this.$router.back(): 请求(返回)上一个记录路由
    this.$router.go(-1): 请求(返回)上一个记录路由
    this.$router.go(1): 请求下一个记录路由

多级路由

# 使用步骤:
	- 1 新建一个页面组件(LqzView),配置路由
    	  {
            path: '/lqz',
            name: 'lqz',
            component: LqzView,
        },
    -2 在页面中,想再显示页面组件,实现点击切换的效果
    	   <h1>lqz页面</h1>
            <router-link to="lqz01">
              <button>lqz-01</button>
            </router-link>
            <router-link to="lqz02">
              <button>lqz-02</button>
            </router-link>

            <router-view>
            # 以后这里变换页面组件,多级路由
            </router-view>
    -3 新建两个页面组件,Lqz01.vue,Lqz02.vue,配置路由children
        {
            path: '/lqz',
            name: 'lqz',
            component: LqzView,
            children: [ //通过children配置子级路由
                {
                    path: 'lqz01', //此处一定不要写:/news
                    component: Lqz01
                },
                {
                    path: 'lqz02',//此处一定不要写:/message
                    component: Lqz02
                }
            ]
        },

路由守卫

# 前置路由守卫,再进入路由之前做判断
# 写在router-index.js中,以后访问任意一个路由,都会执行这个代码
router.beforeEach((to, from, next) => {
    console.log('前置路由守卫', to, from)
    // 要是访问lqz01,都不能跳转'
    // 如果没有登录,不能访问
    if (to.path == '/lqz/lqz01') {
        alert('你灭有权限')
    } else {
        next() # 继续访问
    }

路由的两种工作模式

路由器的两种工作模式
1 对于一个url来说,什么是hash值?—— #及其后面的内容就是hash值。
2 hash值不会包含在 HTTP 请求中,即:hash值不会带给服务器。
3 hash模式:
    地址中永远带着#号,不美观 。
    若以后将地址通过第三方手机app分享,若app校验严格,则地址会被标记为不合法。
    兼容性较好。
4 history模式:
    地址干净,美观 。
    兼容性和hash模式相比略差。
    应用部署上线时需要后端人员支持,解决刷新页面服务端404的问题

localstorage和sessionstorage,和cookie

# 前端存储数据
	- 登录成功,有token,存本地
    - 不登陆加购物车
    
# 前端可以存数据的位置:
	localstorage:永久存储,除非你删除,关闭浏览器,再打开还会在
    sessionstorage:只在当前会话生效,关闭浏览器,就没了
    cookie:有过期时间,到了过期时间,自动删除
    
# 操作这三个位置
<template>
  <div class="home">
    <h1>操作localstorage,永久存储</h1>
    <button @click="addLocalstorage">增加</button>
    <button @click="getLocalstorage">查</button>
    <button @click="deleteLocalstorage">删除</button>
    <h1>操作sessiostorage,当前会话,关闭浏览器</h1>
    <button @click="addSessiostorage">增加</button>
    <button @click="getSessiostorage">查</button>
    <button @click="deleteSessiostorage">删除</button>


    <h1>操作cookie,有过期时间</h1>
    <button @click="addCookie">增加</button>
    <button @click="getCookie">查</button>
    <button @click="deleteCookie">删除</button>

  </div>
</template>

<script>

export default {
  name: 'HomeView',
  methods: {
    addLocalstorage() {
      var userinfo = {name: 'lqz', age: 19}
      localStorage.setItem('userinfo', JSON.stringify(userinfo))

    },
    getLocalstorage() {
      var userinfo = localStorage.getItem('userinfo')
      console.log(JSON.parse(userinfo).name)

    },
    deleteLocalstorage() {
      localStorage.clear()
      localStorage.removeItem('userinfo')

    },
    addSessiostorage() {
      var userinfo = {name: '彭于晏', age: 19}
      sessionStorage.setItem('userinfo', JSON.stringify(userinfo))

    },
    getSessiostorage() {
      var userinfo = sessionStorage.getItem('userinfo')
      console.log(JSON.parse(userinfo).name)

    },
    deleteSessiostorage() {
      sessionStorage.clear()
      sessionStorage.removeItem('userinfo')

    },
    addCookie() {
      // 需要借助于第三方  vue-cookies
      // cnpm install -S vue-cookies
      this.$cookies.set('name', '刘亦菲', '300s')

    },
    getCookie() {
      console.log(this.$cookies.get('name'))

    },
    deleteCookie() {
      this.$cookies.remove('name')

    },
  }


}
</script>

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

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

相关文章

《实战AI低代码》生成式AI和低代码开发的融合对组织效率的影响

目录 1. 自动化重复任务: 2. 智能流程优化: 3. 增强公民开发者: 4. 快速原型设计和实验: 5. 智能应用程序维护和更新: 随着科技的不断发展,生成式人工智能(AI)和低代码软件的融合已经成为了一个热门话题。这两种技术的结合可以加速创新并改变组织运作的方式。在本…

性能测试-平均事务响应时间ART分析解析,要卷就卷成最强的...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 业务背景&#xf…

5.基于图神经网络的点云分类

目录 一、数据处理二、点云生成三、PointNet阶段1&#xff1a;通过动态图生成进行分组阶段2&#xff1a;邻居聚合 四、网络架构五、训练程序 在本教程中&#xff0c;您将学习使用图神经网络进行点云分类的基本工具。在这里&#xff0c;我们得到了一个对象或点集的数据集&#x…

北京大学研发基于机器学习的多能干细胞分化系统,高效、稳定制备功能性细胞

内容一览&#xff1a;20 世纪以来&#xff0c;干细胞与再生医学技术一直是国际生物医学领域的热点前沿之一。现如今&#xff0c;研究人员已开始探索将干细胞转变为特定类型细胞。然而&#xff0c;这一过程中干细胞会出现不规则生长或自发分化为不同类型细胞的情况&#xff0c;因…

大数据治理:数据安全

数据安全 (Data Security)一般指保护重要的、机密的纸质信息或数字信息&#xff0c;防止未经授权的非法访问、泄露、篡改、丢失、损坏、数据滥用等情形。数据安全涵盖的范围非常广泛&#xff0c;包括存储数据的硬件设备、访问数据的软件环境、访问权限控制、相关的规章制度等。…

vscode配置clangd和clang-format

vscode安装和配置 如何安装和配置vscode以搭建c开发环境&#xff0c;可以查看我的另一篇博客&#xff1a;Windows上最轻量的vscode-C开发环境搭建。 在这篇博客中&#xff0c;详细介绍了如何安装vscode以及应该安装哪些插件。这里不再赘述。 vscode中想使用clangd来作为语言…

Unity极坐标Shader特效,以及使用Instanced Property实现相同材质不同参数

Unity极坐标特效 先看看效果 Unity极坐标Shader特效 有时候我们需要在场景中摆放一些热点&#xff0c;用户点击之后出现互动&#xff0c;当然实现这个功能的方法有很多&#xff0c;作为一名程序员&#xff0c;当然是要用最简单的实现。用shader程序化实现它。 啥是极坐标 极坐…

鲸落送书第二期清华出版社系列丛书

1.《Node.js从基础到项目实践&#xff08;视频教学版)》 《Node.js从基础到项目实践&#xff08;视频教学版&#xff09;》以理论结合实践的形式&#xff0c;讲解了Node.js 基础、框架、进阶知识和项目实践。本书为视频教学版&#xff0c;每一章节都有相对应的视频讲解&#xf…

番茄工作法图解——简单易行的时间管理方法

ISBN: 978-7-115-24669-1 作者&#xff1a;【瑞典】诺特伯格&#xff08;Staffan Noteberg&#xff09; 页数&#xff1a;136页 阅读时间&#xff1a;2023-06-10 推荐指数&#xff1a;★★★★★ 番茄工作法&#xff08;意大利语&#xff1a;Pomodoro Technique&#xff09;是一…

网工内推 | 数通专场!最高19k*13薪,HCIE/CCIE认证优先

01 嘉环科技股份有限公司 招聘岗位&#xff1a;数据工程师 职责描述&#xff1a; 1、 承担TL/TE职责&#xff0c;负责数通接入&#xff08;路由器、交换机、安全、PTN、OLT等&#xff09;相关产品的工程项目交付。 2、 作为技术负责人/交付工程师支撑项目交付&#xff0c;指导…

zabbix监控域名证书期限

前言 zabbix通过自定义key"domain.discovery"发现域名&#xff08;Json格式&#xff09;&#xff0c;然后自动生成监控项&#xff0c;监控项通过自定义key"https"获取域名证书有效期&#xff0c;若少于30天则出发告警。 说明 名称作用domain.txt域名列表…

day06--java高级编程:多线程,枚举类,注解,反射,网络通讯

1 Day16–多线程01 1.1 程序概念 程序(program)&#xff1a;是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码&#xff0c;静态对象。 1.2 进程 1.2.1 概念 进程(process)&#xff1a;是程序的一次执行过程&#xff0c;或是正在运行的一个程序。是一…

基于Python3.7的robotframework环境搭建步骤

Windows环境搭建 安装Python3 官网下载&#xff0c;我这边环境是Python 3.7.0 安装robotframework基础依赖 在dos命令输入 pip install robotframework 在线安装robotframework 在dos命令输入 pip install Pypubsub3.3.0 在线安装 Pypubsub 在dos命令输入 pip install wxPy…

汇编学习教程:寻址大总结

前言 在上篇博文中&#xff0c;我们主要学习了一个全新的寄存器&#xff1a;bp。bp 寄存器在功能和使用上与 bx 有着异曲同工之妙&#xff0c;只不过两人绑定的服务对象不同&#xff1a;bx 默认绑定的是 DS 段寄存器&#xff0c;而 bp 默认绑定的是 SS 段寄存器。bx 和 bp 有着…

抓包!抓包! HTTPS中间人抓包

简介 抓包是一种网络分析技术&#xff0c;可以用于捕获和分析数据包&#xff0c;通常用于网络故障排查、协议分析、安全审计等。网络上所有的数据包都是以二进制的形式在网络上传输的&#xff0c;抓包工具可以捕获到这些数据包并将其转换为可读的格式&#xff0c;方便进行分析…

Python使用阿里API进行身份证识别

Python使用阿里API进行身份证实名认证 1. 作者介绍2. 身份证识别介绍3. 调用阿里智能云API4. 代码解析4.1 完整代码4.2 实验结果 参考 1. 作者介绍 孟莉苹&#xff0c;女&#xff0c;西安工程大学电子信息学院&#xff0c;2021级硕士研究生&#xff0c;张宏伟人工智能课题组 研…

极致呈现系列之:Echarts折线图的视觉冲击力

目录 认识折线图折线图的创建折线图的美化修改折线的样式修改坐标轴的样式修改折线图上点的样式将折线设置为平滑曲线设置渐变色面积给折线图添加标记线给折线图添加标记点 折线图的交互添加鼠标悬停提示添加数据区域选择与缩放 认识折线图 折线图是一种常用的数据可视化图表&…

React中的HOC高阶组件处理

先了解函数柯里化 柯里化函数&#xff08;Currying Function&#xff09;是指将一个接受多个参数的函数转化成一系列只接受单个参数的函数&#xff0c;并且返回接受单个参数的函数&#xff0c;达到简化函数调用和提高可读性的目的。 简单来说&#xff0c;柯里化即将接收多个参…

大数据为什么如此重要?

简单来说&#xff0c;大数据就是结构化的传统数据再加上非结构化的新数据。那么传统数据和新数据又是什么呢&#xff1f;传统数据就是IT业务系统里面的数据&#xff0c;如客户资料、财务数据等。这些数据是结构化的&#xff0c;量也不是特别大&#xff0c;一般只是TB级。对比传…

如何让自己的代码顺利通过代码审查?

最近很多同学&#xff0c;都去暑期实习了&#xff0c;实习就意味着要在公司项目是写代码了。 大多数同学&#xff0c;可能面试能力不错&#xff0c;但是实操还是弱了一些。之前有位同学&#xff0c;春招靠面试能力去了大厂&#xff0c;然后实习刚工作的时候&#xff0c;要写代…