react转vue,看这一篇就够了

227 阅读1分钟

今天跟一个同事聊天,组长给了他一个vue2的项目,他之前一直写的是react,我说放心以你的实力一天就能上手。

下面我想分享一下vue2的一些使用方法,轻松上手,我的初衷是看了我的这个文章就能上手vue,起码能写需求了。

我先介绍一下vue2它与react的类组件使用方法类似,用最通俗的话语介绍一下vue2, 区别就在于 vue状态维护在date里 需要return,react的类组件是维护在state里,使用都需要this等,区别很多本文只说vue的使用方法,下面我着重介绍下vue2的使用方法,欢迎大佬补充。

生命周期

我觉得要写业务这个是最重要的了,最常用的两个钩子,

created

钩子在实例被创建之后调用,但尚未挂载到 DOM 上。可以请求一些接口数据,

created() {
console.log('实例已创建');
console.log('message:', this.message); // 可以访问 data 属性 }

mounted

钩子在 Vue 实例被挂载到 DOM 后调用。这意味着在这个阶段,$el 属性已经被创建,并且可以访问真实的 DOM 元素,可以进行一下dom操作,当然也可以请求接口数据,这是两个最常用的,卸载的钩子就自己去百度吧,哈哈哈!

mounted() {
console.log('实例已挂载'); 
console.log(this.$el); // 可以访问 DOM 元素 this.$el.textContent = 'DOM 已更新'; }

方法

Vue2中方法是写在 methods对象里的,因为vue的选项式api, 所有的方法都需要在这个对象里。使用的时候直接this.方法名字

methods: { 
    greet() {
       alert(this.message); 
           } 
        }

Vue2的一些自定义指令

V-model 数据双向绑定,使用就是在组件中绑定一个v-model就能拿到这个value。

<template> 
<div>
<input v-model="message" placeholder="输入一些文字"> 
<p>你输入的内容是:{{ message }}</p> 
</div>
</template>

<script>
export default {
data() { 
return { 
message: '' 
   };
  } 
};

v-if 条件判断

<template> 
<div v-if="condition"> 这段内容只有在 `condition` 为真时才会显示。 </div> 
</template>

<script>
export default {
data() { 
return { 
condition: '' 
   };
  } 
};

V-for 循环渲染,渲染数据的,下面介绍了computed以及v-for的使用方法,使用计算属性computed计算show是true的,然后循环渲染到模版上

<template> 
 <ul> 
  <li v-for="item in filteredItems" :key="item.id"> {{ item.text }} 
  </li>
 </ul>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, text: '第一项', show: true },
        { id: 2, text: '第二项', show: false },
        { id: 3, text: '第三项', show: true }
      ]
    };
  },
  computed: {
    filteredItems() {
      return this.items.filter(item => item.show);
    }
  }
};
</script>

还有一个最关键的vue不是写jsx是写template下,其实没有太大区别

再有就是子父传参,兄弟传参,方法有很多,下面是事例是父向子传递一个message,父组件可以通过在子组件标签上使用 props 属性向子组件传递数据。子组件需要在 props 选项中声明这些属性。

子组件可以通过 $emit 触发自定义事件,并将数据作为参数传递给父组件。父组件通过在子组件标签上监听这些事件来接收数据。

//父组件
<template> 
 <div> 
  <h1>父组件</h1> 
  <ChildComponent :message="parentMessage" @message-from-child="handleMessage" />
 </div> 
</template>
<script> 
import ChildComponent from './ChildComponent.vue'; 
export default { 
    ‘components: { ChildComponent },
data() { 
 return {
     parentMessage: 'Hello from Parent!' ,
     childMessage:'‘
  }; 
 } 
 methods: { 
   handleMessage(message) { 
     this.childMessage = message; 
    } 
   }
}; 
</script>

//子组件
<template>
<div> 
<h2>子组件</h2>
<p>{{ message }}</p> 
<button @click="sendMessage">发送消息给父组件</button>
</div>
</template> 

<script> 
export default { 
props: {
message: {
type: String, required: true 
  } 
 } 
 methods: {
   sendMessage() {
     this.$emit('message-from-child', 'Hello from Child!');
  }
}; 
</script>

本文初衷,看了这篇文章能够上手vue,希望对大家有帮助。