首页 > 其他分享 >登录案例,scoped,ref属性,props其他,混入mixin,插件,饿了么UI

登录案例,scoped,ref属性,props其他,混入mixin,插件,饿了么UI

时间:2023-06-12 17:34:03浏览次数:26  
标签:插件 vue lqz js UI mixin 组件

0 解析一下vue项目

# 1 为什么浏览器中访问某个地址,会显示某个页面组件
	-根组件:App.vue  必须是
        <template>
          <div id="app">
            <router-view></router-view>
          </div>
    	</template>
	-1 配置路由
    	router----》index.js---》const routes = [
                {
                path: '/lqz',
                name: 'lqz',
                component: Lqz  # 组件,需要导入
            },
        ]
     -2 放心大胆的写页面组件  -src---->views文件夹
    
    
# 2 在页面组件中使用小组件
	-1 写一个小组件,我们写了个Child.vue
    -2 在父组件中,导入组件
    	# @ 代指src路径
		import Child from "@/components/Child";
    -3 父组件中,注册组件
    	  components: {
            Child
          }
    -4 父组件中使用组件
	    <Child :msg="msg" @myevent="handleEvent"></Child>
    -5 自定义属性,自定义事件,插槽,跟之前一模一样

image

1 登录小案例

# 1 登录页面:LoginView.vue
	
# 2 访问/login 显示这个页面组件
# 3 在LoginView.vue写html,和js,axios
	-安装 axios
    -cnpm install -S axios  # 把安装的axios放到package.json中
# 4 写ajax,向后端发送请求,给按钮绑定两个一个事件
	#安装axios,导入axios
	    handleSubmit() {
          console.log(this.name, this.password)
          axios.post('http://127.0.0.1:8000/login/', {
            name: this.name,
            password: this.password
          }).then(res => {
            // console.log(res.data)
            if (res.data.code == 100) {
              //跳转到百度
              location.href = 'http://www.baidu.com'
            } else {
              alert(res.data.msg)
            }
          })
        }
# 4 写个后端的登录接口,处理好跨域问题,处理跨域如下



####解决后端跨域问题#####
	1 安装
    	pip3.8 install django-cors-headers
    2 注册app
        INSTALLED_APPS = (
            ...
            'corsheaders',
            ...
        )
    3 配置中间件
        MIDDLEWARE = [  
            ...
            'corsheaders.middleware.CorsMiddleware',
            ...
        ]
    
    4 配置文件中加入:setting下面添加下面的配置
        CORS_ORIGIN_ALLOW_ALL = True
        CORS_ALLOW_METHODS = (
            'DELETE',
            'GET',
            'OPTIONS',
            'PATCH',
            'POST',
            'PUT',
            'VIEW',
        )

        CORS_ALLOW_HEADERS = (
            'XMLHttpRequest',
            'X_FILENAME',
            'accept-encoding',
            'authorization',
            'content-type',
            'dnt',
            'origin',
            'user-agent',
            'x-csrftoken',
            'x-requested-with',
            'Pragma',
            'token'
        )

2 scoped

# 新建的组件   加了scoped,表示样式只在当前组件生效,如果不加,子组件都会使用这个样式
<style scoped>
</style>

3 ref属性

#ref属性
	-放在普通标签上,通过  this.$refs.名字---》取到的是dom对象,可以直接操作dom
    -放在组件上,通过该this.$refs.名字---》取到的是组件对象,这样在父组件中,就拿到了子组件对象,对象属性和方法直接用即可

3 props其它

# 父传子之自定义属性

  # 1 基本使用
    props: ['msg'],
  # 2 限制类型:
    props: {'msg': Boolean},
  # 3 限制类型,必填,默认值
     props: {
        msg: {
          type: String, //类型
          required: true, //必要性
          default: '老王' //默认值
        }
      }

4 混入mixin

# 包下的 index.js  有特殊函数,
	-之前导入 
    import xx from './mixin/index.js'
    -可以写成
	import xx from './mixin'

# mixin(混入)
	功能:可以把多个组件共用的配置提取成一个混入对象

# 使用步骤
	1 定义混入对象:mixin---》index.js中写
        export const lqz = {
            data() {
                return {
                    name: 'lqz'
                }
            },
            methods: {
                handleName() {
                    alert(this.name)
                }
            }
        }
    2 使用混入:局部使用,组件中使用
    	import {lqz} from '@/mixin'
         mixins: [lqz]
    3 全局使用混入:每个组件都有效main.js中
        import {lqz} from '@/mixin'
        Vue.mixin(lqz)

5 插件

# 插件功能:用于增强Vue,有很多第三方插件
	(vuex,router,elemetui)

# 定义自己的插件
本质:包含install方法的一个对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的数据


# 使用步骤:
	1 定义插件:plugins---》index.js---》
        export default {
            install() {
            # 1 在vue实例中放属性
            # 2 定义混入,全局都可以使用混入
            # 3 自定义指令(不讲了)---》以后我们可能使用了一个第三方插件,它提供了一些指令  v-lq
            # 4 定义全局组件---》全局
        }
    }
    2 在main.js中 使用插件
        import lqz from '@/plugins'
        Vue.use(lqz)  # 这句话,就会执行lqz中得install,并且把vue传入
    	
	

6 Elementui

# ui 库,控制样式的,它就是vue的一个插件


# 在vue项目中引入   elementui
	1 在项目中安装:
    	cnpm install element-ui -S
	2 main.js配置
    import ElementUI from 'element-ui';       // 把对象引入
    import 'element-ui/lib/theme-chalk/index.css';  // 把样式引入
    Vue.use(ElementUI)
    
    3 看到好看的,直接复制
    	-html
        -css
        -js

标签:插件,vue,lqz,js,UI,mixin,组件
From: https://www.cnblogs.com/whxx/p/17475621.html

相关文章

  • vue之elementui使用, vuex使用, Router使用, localstorage和sessionstorage,和cookie
    目录一、elementui使用下载插件vue界的ui库二、vuex的使用1.概念2.何时使用?3、使用步骤:三、Router使用1简单使用2组件中实现页面跳转3路由跳转时,可以使用对象4this.router的一些方法四、多级路由五、路由守卫和两种工作模式路由守卫路由器的两种工作模式六、localstorage和se......
  • JuiceFS 社区版 v1.1- Beta 发布,新增五个实用功能
    我们很高兴地宣布JuiceFSv1.1-Beta版本正式发布啦!这是一个功能丰富的版本,带来了许多实用的新功能和改进。在这个版本中我们新增了以下功能:目录配额:为目录设置配额限制,控制其大小和文件数目录克隆:快速地复制目录及其内容,节省时间和空间一键恢复回收站文件:一次性地恢复某段时......
  • POJ 3498 March of the Penguins(枚举+最大流)
    题意:在X,Y坐标系中有N(N<=100)个冰块...有些冰块上有若干只企鹅..每只企鹅一次最多跳M距离..一个冰块在有Mi个企鹅离开..就会消失..问有哪些冰块可以作为集合点..就是所有企鹅都能成功到这个冰块上来.思路:枚举每一块冰块,看看最大流能否等于企鹅总数即可      建图:把每块......
  • 直播系统搭建,vue插件之vue-seamless-scroll 无缝滚动
    直播系统搭建,vue插件之vue-seamless-scroll无缝滚动使用 importvueSeamlessScrollfrom'vue-seamless-scroll' //注册组件 components:{  vueSeamlessScroll}  //template  <vue-seamless-scroll:data="Top10GatewayLog":class-option="optionSingleHeigh......
  • 二维码qrcode插件
    一.安装npminstall--saveqrcode二.canvas绘制importQRCodefrom"qrcode";//选择二维码添加的元素constchild=this.$el.querySelector(".child");QRCode.toCanvas(value,options,(error,canvas)=>{if(error){throwerror;}child.app......
  • RK3568开发板Buildroot 系统设置显示颜色格式
    BuildrootSDK内Weston目前默认显示格式为ARGB8888,对于某些低性能平台,可以在weston.ini的core段配置为RGB565。修改文件系统中/etc/xdg/weston/weston.ini文件,修改如下所示:[core]#xrgb8888|rgb565|xrgb2101010gbm-format=rgb565也可以在weston.ini的output段单独配......
  • 揭秘报表新玩法!标配插件不再单调,如何用柱形图插件让你的报表瞬间高大上!
    摘要:本文由葡萄城技术团队于博客园原创并首发。葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言图表作为一款用于可视化数据的工具,可以帮助我们更好的分析和理解数据,并发现数据之间的关系和趋势。下面以柱形图为例介绍如何使用JavaScript在报表中引入图表......
  • [MAUI]写一个跨平台富文本编辑器
    @目录原理创建编辑器定义实现复合样式选择范围字号字体颜色与背景色字体下划线字体加粗与斜体序列化和反序列化跨平台实现集成至编辑器创建控件使用控件最终效果已知问题项目地址富文本编辑器是一种所见即所得(whatyouseeiswhatyouget简称WYSIWYG)文本样式编辑器,用户在编......
  • SwiftUI 界面的自我关闭(dismiss)
    使用dismiss环境变量NavigationStackView、Sheet等产生的次级界面,可使用@Environment(\.dismiss)vardismiss自行控制消失。structDetailView:View{@Environment(\.dismiss)vardismissvarbody:someView{Button("关闭DetailView"){......
  • mybatis-plus-generator-ui 可视化代码生成器!
    它提供交互式的WebUI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Service,Controller等。可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。git地址:https://github.com/davidfantasy/mybatis-plus-generator-ui一、使用示例1......