(vue学习)记录1

vue只关心视图层
html+css+js视图层
是双向数据绑定,视图发生变化时,数据也会发生变化。

网络通信 axios
页面跳转 vue-route
状态管理 vuex

大大减少DOM操作

1.基本语法

v-开头为指令
v-bind attribute 被称为指令。指令带有前缀 v-,以表示它们是 Vue 提供的特殊 attribute。
v-bind即把vm中的data与标签中的值绑定(如id,class等)

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue 测试实例</title>

</head>
<body>
<!--view层-->
<div id="app" class="demo">
    <span v-bind:title="message">hello</span>

</div>


<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script>

    var vm = new Vue({
        el:"#app",
        data:{
            message:"hello vue"
        }

    })

</script>
</body>
</html>

判断

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue 测试实例</title>

</head>
<body>
<!--view层-->
<div id="app" class="demo">
    <h1 v-if="ok">yes</h1>
    <h1 v-else> NO</h1>
</div>


<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script>

    var vm = new Vue({
        el:"#app",
        data:{
           items:[
               {message:1},
               {message:2}
           ]
        }

    })

</script>
</body>
</html>

循环

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue 测试实例</title>

</head>
<body>
<!--view层-->
<div id="app" class="demo">
    <h1 v-for="irem in items">
        {{irem.message}}
    </h1>
</div>


<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script>

    var vm = new Vue({
        el:"#app",
        data:{
           items:[
               {message:1},
               {message:2}
           ]
        }

    })

</script>
</body>
</html>

函数事件绑定

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue 测试实例</title>

</head>
<body>
<!--view层-->
<div id="app" class="demo">
 <button v-on:click="sayHi">adas</button>
</div>


<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script>

    var vm = new Vue({
        el:"#app",
        data:{
           items:[
               {message:1},
               {message:2}

           ],
            methods:{
               sayHi:function () {
                   alert(this.items);
               }
            }

        }

    })

</script>
</body>
</html>

动态绑定 v-model
将传入的值传入v-model的message中,v-model的message再传入进vm的message中,再通过vm传到{{message}}中

<body>
<!--view层-->
<div id="app" class="demo">
    <input type="text" v-model="message">{{message}}
</div>


<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script>

    var vm = new Vue({
        el:"#app",
        data:{
            message:null
          },




    })

</script>
</body>

双选框

<body>
<!--view层-->
<div id="app" class="demo">
    <input type="radio" name="sex" value="man"v-model="checked" >man
    <input type="radio" name="sex" value="woman" v-model="checked">woman
    <p>
        {{checked}}
    </p>
</div>


<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script>

    var vm = new Vue({
        el:"#app",
        data:{
            message:null,
            checked:''
          },

    })

</script>
</body>

vue组件

组件component即为自定义标签,其中的props即为id,class等变量,这里用v-for将vm中的data里面的items取出,用item保存,再用v-bind把item的值与qin这个自定义变量绑定,即可通过qin将内容传入自定义组件中。
数据传输顺序为 vm-component-component内部

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue 测试实例</title>

</head>
<body>
<!--view层-->
<div id="app" class="demo">
   <mcl v-for="item in items" v-bind:qin="item"></mcl>


</div>


<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script>

    Vue.component("mcl",{
        props:['qin'],
        template:'<li>{{qin}}</li>'
    });

    var vm = new Vue({
        el:"#app",
        data:{
            message:null,
            checked:'',
            items:['as','asd','adsdas']
          },

    })

</script>
</body>
</html>

在这里插入图片描述

Axios异步通信

用钩子函数axios获取信息,用data()方法存到vm里面用。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue 测试实例</title>

</head>
<body>
<!--view层-->
<div id="app" class="demo">
    <div>
        {{info.address.xxx}}
        {{info.name}}
    </div>

</div>


<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.21.4/axios.min.js" integrity="sha512-lTLt+W7MrmDfKam+r3D2LURu0F47a3QaW5nF0c6Hl0JDZ57ruei+ovbg7BrZ+0bjVJ5YgzsAWE+RreERbpPE1g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>



    var vm = new Vue({
        el:"#app",

            data() {
                return {
                    info:{
                        name:null,
                        address:{
                            xxx:null,
                            yyy:null
                        }
                    }

                }
            },

        mounted(){//钩子函数
            axios.get("").then(response=>(this.info=response.data));//往其中传入json
        }

    })

</script>
</body>
</html>

计算属性

{{方法}}
computed:{
方法
}
调用methods的方法每次都要计算,但用computed定义的方法可以缓存起来,减少系统开销。
methods和computed里面的方法不能重名。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在 Vue 中,您可以使用 try-catch 语句来捕获异常。例如: ``` try { // 这里写可能会出现异常的代码 } catch (error) { // 这里写处理异常的代码 // 例如,将异常信息记录到 txt 文件中 const fs = require('fs') fs.appendFileSync('error.txt', error) } ``` 在这段代码中,try 块中的代码是可能会出现异常的代码,如果出现异常,则会跳转到 catch 块中处理异常。在 catch 块中,我们可以使用 node.js 中的 fs 模块来将异常信息记录到 txt 文件中。 需要注意的是,Vue 是一个前端框架,并不能直接使用 node.js 中的 fs 模块。如果要在 Vue 中使用 fs 模块,您需要将 Vue 项目打包成服务器端渲染 (SSR) 应用,或者使用 Webpack 等工具将 Vue 项目打包成后端代码。 ### 回答2: 在Vue中,要将异常记录到txt文件,我们可以使用JavaScript的File API和Blob对象来实现。 首先,我们需要在Vue实例中定义一个方法来处理异常,并将异常信息写入txt文件: ```javascript methods: { logError(error) { // 创建一个Blob对象,将异常信息写入其中 const blob = new Blob([error.stack], { type: 'text/plain' }); // 创建一个临时a标签,用于下载txt文件 const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.download = 'error_log.txt'; // 将a标签添加到DOM中,并模拟点击下载 document.body.appendChild(link); link.click(); document.body.removeChild(link); } } ``` 然后,在需要捕获异常的地方使用try...catch语句来捕获异常,并调用logError方法将异常信息写入txt文件: ```javascript try { // ... 可能会产生异常的代码 } catch (error) { this.logError(error); } ``` 当代码中产生异常时,logError方法会将异常信息写入txt文件,并自动下载到本地。用户可以根据需要进行文件命名和存储路径的修改。 需要注意的是,该方法仅适用于前端开发环境,如果需要在后端记录异常到txt文件,可以借助Node.js的fs模块来实现相似的功能。 ### 回答3: Vue 可以通过以下步骤将异常记录到一个 txt 文件中: 1. 创建一个全局错误处理器,在 Vue 根实例的 `main.js` 文件中: ```javascript Vue.config.errorHandler = function (err, vm, info) { // 将错误信息写入到txt文件 // 参数err为错误对象,vm为Vue组件实例,info为错误信息(可选) // 可以调用一个自定义的函数writeErrorToTxt来将错误信息写入txt文件 writeErrorToTxt(err, vm, info) } ``` 2. 在写入错误信息到 txt 文件的函数 `writeErrorToTxt` 中: ```javascript function writeErrorToTxt(err, vm, info) { let errorDetails = { error: err.toString(), component: vm.$options.name, // 获取组件名称 info: info || '' // 为可选参数,用于提供额外的错误信息 } // 将错误信息转为 JSON 格式 let errorJSON = JSON.stringify(errorDetails, null, 2) // 创建一个新的 Blob 对象 let blob = new Blob([errorJSON], { type: 'text/plain' }) // 创建一个 a 标签,并设置点击事件,实现文件下载 let a = document.createElement('a') a.href = URL.createObjectURL(blob) a.download = 'error.txt' a.click() } ``` 3. 在 Vue 组件中出现异常时,错误会被全局错误处理器捕捉到,并调用 `writeErrorToTxt` 函数将错误信息写入 txt 文件。用户可以点击下载该文件以查看错误信息。 请注意,这种记录异常到 txt 文件的方法适用于开发环境和生产环境。但对于生产环境,应考虑将错误信息发送到服务器或其他日志记录系统,以便更好地追踪和处理错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mcl19909949541

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值