vue 笔记 (3)

本文介绍了如何在Vue.js中使用newVue构造函数和公共/私有过滤器,并展示了如何通过多个过滤器和传递参数。此外,详细讲解了Axios在前端请求中的应用,包括GET和POST方法,以及与Vue组件的整合实例。

new Vue({

el:' #app'

}) 

相等

new Vue({

}) .$mount('#app')

返回首字母大写的字符串

私有过滤器

<div class="app">
            <p>{{message|capi}}</p>
    </div> 
filters:{
                capi(e){
                    const first= e.charAt().toUpperCase()
                    const str=e.slice(1)
                    return first+str
                }
            }

公有过滤器

<div class="app">
            <p>{{message|capi}}</p>
    </div>
 Vue.filter('capi',(e)=>{
            const first= e.charAt().toUpperCase()
                    const str=e.slice(1)
                    return first+str})

 

多个调用和传递参数

<div class="app">
            <p>{{message|capi1|capi2 }}</p>
            <p>{{message|filter(1,2)}}</p>
    </div>
Vue.filter('capi1',(e)=>{
            const first= e.charAt().toUpperCase()
                    const str=e.slice(1)
                    return first+str})
Vue.filter('capi2',(e)=>{
            const first= e.charAt().toUpperCase()
                    const str=e.slice(1)
                    return first+str})
        Vue.filter('filter',(msg,age1,age2)=>{   第一个参数默认为 message  age1=1 age2=2

        })

侦听器

         watch侦听器 和对象格式侦听器

<div id="app">
    <input type="text" v-model="username">
 <input type="text" v-model="list.uname">
  </div>
const vm = new Vue({
      el: '#app',
      data: {
        username: 'admin',
        list:{uname:'zs'}
      },
      // 所有的侦听器,都应该被定义到 watch 节点下
      //对象侦听器才能设置是否自动触发
      watch: {
        // 侦听器本质上是一个函数,要监视哪个数据的变化,就把数据名作为方法名即可
        // 新值在前,旧值在后 旧值可省略
        username(newVal,oldval) {   该类侦听器无法自动触发
            console.log(result)
          }),
        'list.uname':{    //因为是字符串 所以加' '
            handler(newval){
                console.log(newval)
                },
                immediate:true   //打开浏览器自动触发一次
            }
        }
      }
    })

axions

原生js

// 如果调用某个方法的返回值是 Promise 实例,则前面可以添加 await!
      // await 只能用在被 async “修饰”的方法中
document.querySelector('#btnGET').addEventListener('click', async function () {
      /* axios.get('url地址', {// GET 参数params: {}}) */

      const { data: res } = await axios.get('http://www.liulongbin.top:3006/api/getbooks', {
        params: { id: 1 }
      })
      console.log(res)
    })

    document.querySelector('#btnPOST').addEventListener('click', async function () {
      // axios.post('url', { /* POST 请求体数据 */ })
      const { data: res } = await axios.post('http://www.liulongbin.top:3006/api/post', { name: 'zs', gender: '女' })
      console.log(res)
    })

vue

const vm=new Vue({
            el:'.app',
            methods:{
               async get(){
                const { data: res } = await axios.get('http://www.liulongbin.top:3006/api/getbooks', {
                params: { id: 1 }
                  })
                    console.log(res.data);
                },
                async post(){
                    //
                    const { data: res } = await axios.post('http://www.liulongbin.top:3006/api/post', { name: 'zs', gender: '女' })
                    console.log(res);
                }
            }
        })

.vue文件

分为3部分  

template    要渲染到界面的数据   只能有一个根元素   不然会报错

script

style  样式

<template>
  <div>
    <div class="test-box">
      <h3>这是用户自定义的 Test.vue --- {{ username }}</h3>
      <button @click="chagneName">修改用户名</button>
    </div> </div>
</template>

<script>
// 默认导出。这是固定写法!
export default {
  // data 数据源
  // 注意:.vue 组件中的 data 不能像之前一样,不能指向对象。
  // 注意:组件中的 data 必须是一个函数
  data() {
    // 这个 return 出去的 { } 中,可以定义数据
    return {
      username: 'admin'
    }
  },
  methods: {
    chagneName() {
      // 在组件中, this 就表示当前组件的实例对象
      console.log(this)
      this.username = '哇哈哈'
    }
  },
  // 当前组件中的侦听器
  watch: {},
  // 当前组件中的计算属性
  computed: {},
  // 当前组件中的过滤器
  filters: {}
}
</script>

<style lang="less">
.test-box {
  background-color: pink;
  h3 {
    color: red;
  }
}
</style>

### 关于 Vue3 学习笔记和教程 Vue 是一个流行的前端框架,用于构建交互式的用户界面。以下是有关 Vue3 的学习资源以及如何设置开发环境的相关信息。 #### 1. 安装 Vue CLI 并创建 Vue3 项目 为了快速上手 Vue3,可以使用官方推荐的工具 `vue-cli` 来初始化一个新的项目。安装 Vue CLI 需要 Node.js 和 npm 支持。运行以下命令来全局安装 Vue CLI: ```bash npm install -g @vue/cli ``` 接着可以通过以下命令创建新的 Vue3 项目[^1]: ```bash vue create my-vue3-project ``` 在创建过程中可以选择 Vue3 版本作为默认选项。 --- #### 2. 使用 CDN 方式引入 Vue3 进行初步体验 如果不想立即配置本地开发环境,可以直接通过 HTML 文件中的 `<script>` 标签加载 Vue3 的 CDN 资源来进行简单的实验。例如,在 HTML 中加入以下代码即可开始编写第一个 Vue 应用程序[^2]: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Vue3 Example</title> <!-- 引入 Vue3 --> <script src="https://unpkg.com/vue@next"></script> </head> <body> <div id="app">{{ message }}</div> <script> const app = { data() { return { message: &#39;Hello, Vue3!&#39; } } } Vue.createApp(app).mount(&#39;#app&#39;) </script> </body> </html> ``` 上述代码展示了如何利用 Vue3 实现数据绑定功能。 --- #### 3. 组件间通信:v-model 在 Vue3 中的应用 对于更复杂的场景,比如父子组件之间的双向数据绑定,Vue3 提供了增强版的 `v-model` 功能。下面是一个典型的例子,展示父组件向子组件传递值并接收更新的过程[^3]: **父组件** ```javascript <script setup> import MyInput from &#39;./components/MyInput.vue&#39; import { ref } from &#39;vue&#39; const txt = ref(&#39;初始文本&#39;) </script> <template> <MyInput v-model="txt" /> <p>{{ txt }}</p> </template> ``` **子组件 (MyInput.vue)** ```javascript <script setup> defineProps([&#39;modelValue&#39;]) defineEmits([&#39;update:modelValue&#39;]) </script> <template> <input :value="modelValue" @input="$emit(&#39;update:modelValue&#39;, $event.target.value)" /> </template> ``` 此示例说明了 Vue3 如何支持自定义事件名称前缀(如 `update:`),从而实现更加灵活的数据同步机制。 --- #### 4. 推荐的学习资料 除了以上提到的内容外,还有许多优秀的在线课程可以帮助深入理解 Vue3 技术栈。其中包括但不限于以下几个方面: - **尚硅谷 Vue2.0+Vue3.0 全套教程**: 结合实际案例讲解核心概念和技术要点。 - **黑马程序员 Vue3 学习笔记**: 主要针对初学者设计,适合零基础入门者阅读。 - **官方文档**: https://v3.vuejs.org/guide/introduction.html —— 最权威且详尽的技术指南。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值