Vue——登录小案例、scoped、ref属性、props其他、混入mixin、插件、Element-ui

这篇具有很好参考价值的文章主要介绍了Vue——登录小案例、scoped、ref属性、props其他、混入mixin、插件、Element-ui。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解析Vue项目

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

image-20230608155631331文章来源地址https://www.toymoban.com/news/detail-475930.html

登录小案例

# 1 新建一个页面组件:LoginView.vue
# 2 前端访问/login这个页面组件
# 3 在LoginView.vue写html,和js,axios
	安装 axios
    cnpm install -S axios # 把安装的axios放到package.json中
# 4 写ajax,像后端发送请求,给按钮一个事件
	#安装axios,导入axios
    import axios from 'axios'
    '''点击事件发送axios'''
    handleSubmit() {
      axios.post('http://127.0.0.1:8000/login/', {
        name:this.name,
        password:this.password
      })
          .then( response=> {
            if (response.data.code ===100){
              location.href = 'http://www.baidu.com'
            }else {
             alert(response.data.msg)
            }
          })
    }
# 4 写个后端的登录接口,处理好跨域问题
	from rest_framework.views import APIView
    class LoginView(APIView):
        def post(self,request):
            res = json.loads(request.body)
            name = res.get('name')
            password = res.get('password')
            print(name,password)
            if name == 'xxx' and password == '123':
                return Response({'code':100,'msg':'登录成功'})
            else:
                return Response({'code':101,'msg':'用户名密码错误'})
####跨域问题####
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'
    )

scoped

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

ref属性

# ref属性
	放在普通标签上,通过 this.$refs.名字--->取到的是dom对象,可以直接操作dom
    放在组件上,通过该this.$refs.名字---》取到的是组件对象,这样在父组件中,就拿到了子组件对象,对象属性和方法直接用即可
    
      // this.$refs.myinput.value = 'xxxxxx'
      // this.$refs.myhello // 就是组件对象
      // console.log(this.$refs.myhello.name)
      // this.$refs.myhello.handleClick()
      this.$refs.myhello.name = '我把子组件name改了'

props其他

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

混入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 {xxx} from '@/mixin'
        mixins:[xxx]
   3 全局使用混入:每个组件都有效 在main.js中设置
    	import {xxx} from '@/mixin'
        Vue.mixin(xxx)

插件

# 插件功能:用于增强Vue,有很多第三方插件
	(vuex,router,elemetui)
    
# 定义自己的插件
本质:包含install方法的应该对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的数据
    
# 使用步骤
	1 定义插件:创建一个文件夹plugins--->创建一个js文件index.js---->
        export default {
            install(){
                // 1 在vue实例中放属性
                # 往vue的原型中放axios对象,以后再组件中  this.$ajax  拿到的就是这个axios对象,直接用即可
                	import axios from "axios";
                	Vue.prototype.$ajax =axios
                
                // 2 定义混入,全局都可以使用混入
                定义混入,所有vc和vm上都有name和age
                	Vue.mixin({
                        data(){
                            return {
                                name:'xxx',
                                age:18
                            }
                        }
                    })
                
                // 3 自定义指令--->以后可能会使用第三方插件,它提供了一些指令
                // 4 定义全局组件--->全局
            }
        }
    2 在main.js中 使用插件
    	import xxx from '@/plugins'
        Vue.use(xxx)  # 这句话,就会执行xxx中的install,并且把vue传入

Element-ui

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

# 在vue项目中引入 element-ui
	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)  // 使用elementui
    
    3 看到好看的直接复制
    	html、css、js
    
# 补充
1 卸载element-ui
	cnpm uninstall element-ui -S
2 清缓存
	cnpm cache clean -f
3 下载相对应的版本
  	cnpm i element-ui@2.13.0 -S

到了这里,关于Vue——登录小案例、scoped、ref属性、props其他、混入mixin、插件、Element-ui的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue mixin 混入

    可以复用的组件,我们一般会抽离,写成公共的模块。 可以复用的方法,我们一般会抽离,写成公共的函数。 那么 在 Vue 中,如果 某几个组件实例 VueComponent 中 、 或者 整个 Vue 项目中 都存在相同的配置,那就需要用到 mixin 这个方法了 混入 (mixin) :提供了一种非常灵活的方

    2024年02月15日
    浏览(27)
  • VUE,子组件给父组件传递参数,props 自定义属性,ref

    AA组件 BB CC

    2024年02月14日
    浏览(25)
  • vue3混入mixins

    Vue中混入的作用是分发组建中可复用的功能 新建mixins文件夹,新建mixins.ts文件 在文件中引用 注意:二者的函数复用,但是数据不共享

    2024年02月13日
    浏览(38)
  • vue2混入实现、mixin、methods

    mixin 混入提供了一种非常灵活的方式来分发 vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混合进入该组件本身的选项。 混入可以将多个组件中的公共配置提取成一个混入对象,这样就可以实现代码复用。

    2023年04月25日
    浏览(32)
  • Vue.js 中的 mixin 和混入有什么区别?

    在 Vue.js 中,mixin 和混入是两个常用的概念,它们可以帮助我们实现代码的复用和组件间的通信。虽然它们的名字很相似,但它们的作用和用法有所不同。本文将介绍 mixin 和混入的区别,并通过代码示例来说明它们的用法。 mixin 是一种在 Vue.js 中实现代码复用的方式。它类似

    2024年02月09日
    浏览(28)
  • uniapp开发中基于vue的混入(mixin) 实现微信小程序全局【发送给朋友】、【分享到朋友圈】、【复制链接】

    一、在开发微信小程序的时候,发现【发送给朋友】、【分享到朋友圈】、【复制链接】功能,灰色不可用。 很常见的功能,但是这几个功能,并不是你项目建起来了就有的。 1.【发送给朋友】使用 onShareAppMessage 这个方法 如果你的小程序,发现他的【转发给朋友】的按钮时

    2024年01月17日
    浏览(38)
  • [vue]使用Element--Tree 树形控件使用props解决自定义slot-scope=“{ node, data }“的对象问题

     在未用props定义的情况下,slot-scope=\\\"{ node, data }\\\"解析data对象只有data含有lable和children才能识别出内容和子节点 当我获取的数据如下,没有lable和children,使用的是name和childList,如下图所示: 注意props是对象形式,        

    2024年02月11日
    浏览(40)
  • vue中style scoped属性的作用和原理以及scoped穿透

    一、为什么要给style 节点加 scoped 属性(vue) 1、 作用 :当style标签里面有scoped属性时,它的css只作用于当前组建的元素。在单页面项目中可以使组件之间互不污染,实现模块化(实现组件的私有化,不对全局造成样式污染,表示当前style属性只属于当前模块)。 2、 实现原理

    2024年02月12日
    浏览(28)
  • Vue(ref和$refs属性介绍与使用)

    在Vue中一般很少会用到直接操作DOM,但不可避免有时候需要用到,这时我们可以通过ref和$refs这两个来实现,本文我们就来详细的介绍下这个内容 除了自定义属性外,Vue实例还暴露一些有用的实例属性和方法,他们都有前缀$,以便和用户定义的属性和方法分开 常用的属性有

    2023年04月26日
    浏览(23)
  • (Table)操作:Element-ui 中 Table 表格的设置表头/去除下标线/设置行间距等属性的使用及 slot-scope=“scope“ 的使用案例

    1、 Element-ui 提供 Table 组件情况: 其一、 Element-ui 自提供的 Table 代码情况为(示例的代码): 代码地址: https://element.eleme.cn/#/zh-CN/component/table 其二、页面的显示情况为: 2、目标修改后的情况: 1、 Table 表格设置表头及去除下标线等属性的修改: 其一、代码: 其二、效果展示

    2024年02月11日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包