Duas notas de estudo do Vue: características comuns do Vue

Características comuns do Vue

Operação de formulário

Operação de formulário baseada em Vue

  • insira uma única linha de texto
    • Ligação bidirecional por meio do modelo v
  • textarea texto de várias linhas
  • selecionar seleção múltipla suspensa
  • rádio rádio
  • caixa de seleção caixa de seleção

Modificador de campo de formulário

  • número: convertido em um valor numérico (o padrão é uma string)
  • trim: remova os espaços no início e no final
  • preguiçoso: mude o evento de entrada para mudar o evento
 <div id="app">
        <!-- <input type="text" name="" id="" v-model="age"> -->
        <input type="text" v-model.number='age'>
        <input type="text" v-model.trim='trimc'>
        <input type="text" v-model.lazy='changet'>
        <div>{
    
    {
    
    changet}}</div>
        <input type="submit" value="点击" @click="handle">
    </div>
    <script>
        let vm = new Vue({
    
    
            el:"#app",
            data: {
    
    
                age: '',
                trimc: '',
                changet: ''
            },
            methods: {
    
    
                handle(){
    
    
                    console.log(this.age);
                    console.log(this.trimc);
                    console.log(this.changet);
                }
            }
        });
    </script>

Instrução personalizada

  1. Por que você precisa de instruções personalizadas

    As instruções integradas não atendem à demanda

  2. Regras de sintaxe para instruções personalizadas (obter o foco do elemento)
    Vue.directive('focus' ,{
         inserted: function(el){
             //获取元素的焦点
             el.focus();
         }
     })
    
  3. Uso de instrução personalizada
<div id="app">
        <input type="text" v-focus>
    </div>
    <script>
        Vue.directive('focus' ,{
    
    
            inserted: function(el){
    
    
                //获取元素的焦点
                el.focus();
            }
        })
        let vm = new Vue({
    
    
            el:"#app",
            data: {
    
    },
            methods: {
    
    }
        });
    </script>
Parâmetros de função do gancho
  • el: o elemento vinculado pela instrução, que pode ser usado para manipular diretamente o DOM
  • vinculação: um objeto que contém:
    • nome: nome do comando, excluindo v-, prefixo
    • valor: o valor de ligação da instrução,
    • oldValue: o valor anterior vinculado à instrução
Instrução local

Adicione uma instrução adicional.

directives: {
	focus: {
		//指令的定义
		inserted: function(el){
			el.focus()
		}
	}
}

Atributos calculados

A lógica de cálculo da expressão pode ser mais complicada e o uso de atributos calculados pode tornar o conteúdo do modelo mais conciso

computed:{
	reversedMessage: function(){
		return this.msg.split('').reverse().join('')
	}
}
A diferença entre propriedades e métodos calculados
  • Os atributos computados são armazenados em cache com base em suas dependências
  • Método não existe em cache
<div id="app">
        <input type="text" v-model="msg" name="" id="">
        <div>{
    
    {
    
    reversed}}</div>
    </div>
    <script>
        let vm = new Vue({
    
    
            el:"#app",
            data: {
    
    
                msg:""
            },
            methods: {
    
    },
            computed:{
    
    
                reversed: function(){
    
    
                    return this.msg.split('').reverse().join('');
                }
            }
        });
    </script>

filtro

O papel dos filtros

Formate os dados, como formatar uma string para colocar a primeira letra em maiúscula e converter o formato de data em um formato especificado.

Definição de filtro
Vue.filter('过滤器名称', function(value){
	//过滤器业务逻辑
}
Uso de filtros
//upper:过滤器得名称 
<div>{
   
   {msg | upper}}</div>
<div>{
   
   {msg | upper | lower}}</div>
<div v-bind:id | formatId></div>
Filtro local
filters:{
	capitalize: function(){}
}
<div id="app">
        <input type="text" v-model="msg">
        <div>{
    
    {
    
    msg | upper}}</div>
        <div>{
    
    {
    
    msg | upper | lower}}</div>
        <div :upp="msg | upper" >{
    
    {
    
    msg}}</div>
    </div>
    <script>
        Vue.filter('upper', function(val){
    
    
            return val.toUpperCase();
        });
        Vue.filter('lower', function(val){
    
    
            return val.toLowerCase();
        })
        let vm = new Vue({
    
    
            el:"#app",
            data: {
    
    
                msg: ''
            },
            methods: {
    
    },
        });
    </script>

Ouvinte

O ouvinte é usado para monitorar os dados e, quando os dados forem alterados, ele notificará o método vinculado ao ouvinte

Cenários de aplicação

Realiza operações assíncronas ou caras quando os dados são alterados

(Existem semelhanças com atributos calculados)

watch: {
	//方法,val表示当前数据的最新值
	firstName: function(val){
		this.fullName = val + this.lastName;
	},
	lastName: function(val){
		this.fullName = this.firstName + val;
	}
}
Estudo de caso

Verifique se o nome de usuário está disponível

Requisito: Insira o nome na caixa de entrada e verifique se ele existe quando o foco for perdido. Se já existir, solicite a digitação novamente, se não existir, o prompt pode ser usado.

operativo:

1. Realize a vinculação de dados por meio do modelo v

2. Lembretes precisam ser fornecidos

3. Um ouvinte é necessário para monitorar as mudanças nas informações de entrada

4. Necessidade de modificar o evento acionado

<div id="app">
        用户名:<input type="text" v-model.lazy="msg">
        <div>{
    
    {
    
    tip}}</div>
    </div>
    <script>
        let vm = new Vue({
    
    
            el: "#app",
            data: {
    
    
                msg: '',
                tip: ''
            },
            methods: {
    
    
                checkname: function (uname) {
    
    
                    //调用接口,可用定时任务模拟接口调用
                    let that = this;
                    setTimeout(function () {
    
    
                        //模拟接口调用
                        if (uname == 'admin') {
    
    
                            that.tip = '用户名已经存在'
                        }else{
    
    
                            that.tip = '可以注册'
                        }
                    },2000)
                }
            },
            watch: {
    
    
                msg: function (val) {
    
    
                    //调用后台接口验证用户名的合法性
                    this.checkname(val);
                    this.tip = "正在验证。。。"
                }
            }
        });
    </script>
Ouvinte

1. Use um ouvinte para monitorar as alterações de nome de usuário

2. Chame a interface de segundo plano para verificação

3. Ajuste as informações de prompt de acordo com o resultado da verificação

Ciclo de vida (função de gancho do ciclo de vida)

Palco principal
  • Montar (inicializar propriedades relacionadas)
    1. beforeCreate
    2. criado
    3. beforeMount
    4. montado
  • Atualizar (mudar a operação do elemento ou componente)
    1. beforeUpdate
    2. Atualizada
  • Destruir (destruir atributos relacionados)
    • antes de destruir
    • destruído
<div id="app">
        <input type="text" name="" id="" v-model="msg">
        <button @click="destroy">销毁</button>
    </div>
    <script>
        let vm = new Vue({
    
    
            el:"#app",
            data: {
    
    
                msg: ""
            },
            methods: {
    
    
                destroy: function(){
    
    
                    this.$destroy();
                }
            },
            beforeCreate() {
    
    
                console.log("beforeCreate...");
            },
            created() {
    
    
                console.log("create...");
            },
            beforeMount(){
    
    
                console.log("beforeMount...");
            },
            mounted(){
    
    
                console.log("mounted...");
            },
            beforeUpdate(){
    
    
                console.log("beforeUpdate...");
            },
            updated(){
    
    
                console.log("updated...");
            },
            beforeDestroy(){
    
    
                console.log("beforeDestroy...");
            },
            destroyed(){
    
    
                console.log("destroyed...");
            },
        });
    </script>

Diagrama de ciclo de vida

[Foto do site oficial]
Insira a descrição da imagem aqui

Destruir é liberar alguns recursos

montado: indica que a inicialização foi concluída e o modelo já existe.

O processo de geração de instâncias Vue
  • beforeCreate é chamado após a instância ser inicializada e antes da observação de dados e configuração do evento
  • criado é chamado imediatamente após a instância ser criada
  • beforeMount é chamado antes do início da montagem
  • O el montado é substituído pelo vm. $ El recém-criado, e o exemplo é chamado após ser montado na instância
  • beforeUpdate é chamado quando os dados são atualizados, o que ocorre antes que o DOM virtual seja corrigido
  • atualizou a re-renderização e correção do DOM virtual devido a alterações de dados, chame depois
  • beforeDestroy é chamado antes que a instância seja destruída
  • Chamado depois que a instância destruída é destruída

Acho que você gosta

Origin blog.csdn.net/leilei__66/article/details/115103398
Recomendado
Clasificación